Java方法

方法:

代码重复度高,使用方法,复用性提高

具有独立功能的代码块,不调用就不执行

方法定义:

格式:

public static void 方法名(){

    //方法体

}
方法调用:

格式:

方法名();

范例:

public class Demo1Method {
    public static void main(String[] args) {
      eat();
    }

    public static void eat() {
        System.out.println("吃饭");       
    }
}

方法与方法之间是平级关系,不能嵌套定义

方法定义不局限于主方法里面的

方法没有被调用的时候,都在方法区中的字节码文件(.class)中存储

方法被调用的时候,需要进入到占内存中运行

参数:

在定义方法时,变量

定义方法时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错

方法定义是,多个参数之间用,分隔

public class Demo2Method {
    public static void main(String[] args) {

        method(20);
    }
    public static void  method(int num){

        if(num % 2==0){
            System.out.println("偶数");
        }else{
            System.out.println("奇数");
        }
    }
}
形参:

定义方法时的参数(int num)

实参:

方法调用中的参数(20)

带返回值方法的定义和调用:

在这里插入图片描述

方法的返回值通常会使用变量接收,否则该返回值将无意义

区分带返回值的方法,直接输出内容与返回内容的区别:

在这里插入图片描述

输出调用与赋值调用:
public class Demo1Method {
    public static void main(String[] args) {
        System.out.println(max(10,30));//输出调用

        int result = max(10,20);//赋值调用
        System.out.println(result);
        for (int i = 9; i <=result ; i++) {
            System.out.println("oooo");
        }
    }
    public static int max(int num1,int num2){
        if(num1<num2){
            return num2;
        }else{
            return num1;
        }
    }
  }

方法通用格式:

在这里插入图片描述

方法注意事项:

1.方法不能嵌套定义

2.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写

如果要编写return,后面不能跟具体的数据

2.return语句下面,不能编写代码,因为永远执行不到

在这里插入图片描述

方法重载:

方法名一样,参数不一样,就不会发生冲突,因为调用参数的时候,会有明显用哪个方法

同一个类中,方法名相同,参数不同的方法

参数不同:个数不同,类型不同,顺序不同(不同数据类型),跟返回值无关

好处:不用记忆过多繁琐的名字

例子:

public class Demo2Method {
    public static void main(String[] args) {
        System.out.println(compare(10, 20));
        System.out.println(compare((byte) 10, (byte) 20));
        System.out.println(compare((short) 10, (short) 20));
        System.out.println(compare(10L, 10L));
    }
    public static boolean compare(int num1,int num2){
        System.out.print("int:");
        return num1 == num2;
    }
    public static boolean compare(byte num1,byte num2){
        System.out.print("byte:");
        return num1 == num2;
    }
    public static boolean compare(short num1,short num2){
        System.out.print("short:");
        return num1 == num2;

    }

    public static boolean compare(long num1,long num2){
        System.out.print("long:");
        return num1 == num2;
    }
}

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e6CNOnDC-1596446590606)(C:\Users\文慧洋\AppData\Roaming\Typora\typora-user-images\image-20200803163134902.png)]

方法的参数传递:

基本数据类型进行传递:
public class Demo1 {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("前:"+number);
        change(number);//将main方法中的number的值赋值一份,交给change方法中的number,
        System.out.println("后:"+number);
    }
    public static  void change(int number){
        number = 200;//修改change方法中的number的值为200,main方法中的不会受任何影响
    }
}

输出:传进方法中的,是具体的数据值

运行结果

100

100

方法参数传递引用类型:
public class Demo2 {
    public static void main(String[] args) {
        int[] arr = {10,20,30};
        System.out.println("前:"+arr[1]);

        change(arr);//传递内存地址,就是说传递的是数组arr的地址
        //将arr变量保存的数组的地址值复制一份,交给了change方法的arr
        System.out.println("后:"+arr[1]);
    }

    private static void change(int[] arr) {
        arr[1] = 200;//通过地址值,修改数组中的1索引对应的元素为200
    }
}
//注意:字符串类型比较特殊,字符串作为参数传递的时候,结果按基本数据类型走;
//在方法中对字符串进行修改,原方法中的字符串不会受到影响

运行结果:

20

rintln(“后:”+arr[1]);
}

private static void change(int[] arr) {
    arr[1] = 200;//通过地址值,修改数组中的1索引对应的元素为200
}

}
//注意:字符串类型比较特殊,字符串作为参数传递的时候,结果按基本数据类型走;
//在方法中对字符串进行修改,原方法中的字符串不会受到影响


运行结果:

20

200
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值