2.3 函数与函数的重载

public class shishi02{
    public static void main(String[] args){
        for(int i=0;i<3;i++){
            for(int j=0;j<5;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
        for(int i=0;i<6;i++){
            for(int j=0;j<10;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
        for(int i=0;i<2;i++){
            for(int j=0;j<4;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
    }
}
public class shishi03{
    public static void drawRectangle(int x,int y){
        for(int i=0;i<x;i++){
            for(int j=0;j<y;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
    }
    public static void main(String[] args){
        drawRectangle(3,5);
        drawRectangle(2,4);
        drawRectangle(6,10);
    }
}

以上代码中,我们提出的这段代码就是函数体,用来标记这段代码的“名称”(drawRectangle),就是函数名,函数名和函数体共同组成了函数,在Java 中,我们也称之为方法。这个函数需要接受两个整数类型的参数,一个代表矩形的宽度,另一个代表这个矩形的高度。有时候,函数还需要返回一个结果,一个求解矩形面积的函数就要返回一个代表面积的结果,函数的返回结果都是有类型的。

形式参数:在方法被调用时用于接收外部传入的数据的变量

参数类型:就是该形式参数的数据类型

返回值:方法在执行完毕后返还给调用它的程序的数据

返回值类型:函数要返回的结果的数据类型

实参:调用函数时实际传给函数形式参数的数据

public class shishi04{
    public static int getArea(int x,int y){
        return x*y;
    }
    public static void main(String[] args){
        int area = getArea(3,5);
        System.out.println("first Acreage is" + area);
        System.out.println("second Acreage is" + getArea(2,4));
        getArea(6,10);
    }
}

函数调用的几种方式:

(1)如果函数没有返回值或调用程序不关心函数的返回值,可以用下面的格式调用定义的函数:

函数名(实参1,实参2,....)

(2) 如果调用程序需要函数的返回结果,则要用下面的格式调用定义的函数:

变量=函数名(实参1,实参2,...)

(3)对于有返回值的函数调用,也可以在程序中直接使用返回的结果,

public class shishi05{
    public static int getArea(int x,int y){
        if(x<=0|y<=0)
        return -1;
        return x*y;
    }
    public static void main(String[] args){
        int area = getArea(3,5);
        System.out.println("first Acreage is" + area);
        System.out.println("second Acreage is" + getArea(2,4));
        getArea(6,10);
    }
}

Java 程序运行时虚拟机会先找到这个程序的 main 函数,接着从 main函数里面取出一条条代码来执行,以上面的程序 Func4.java 为例,当执行到t area=getArea(3,5);这个语句时,程序会跳转到getArea(int xint y)这个函数的内部去执行,先把实参(3,5)分别赋值给形式参数 (intx,inty),然后返x*y的结果 (returnx*y;),接着回到main里面,把结果赋值给整型变量 area。这就是函数的参数传值的整个过程。

形式参数X和y就相当于函数 getArea 中定义的两个局部变量,在函数被调用时创建并以传入的实参作为初始值,函数调用结束时也就被释放了,不会影响到主程序中其他的x和y(如果有的话),因为它们属于不同作用域中的变量,它们是互不相干的变量

函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。在这种情况下,该函数就叫被重载 (overloaded)了,这个过程称为函数的重载 (methodoverloading)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值