Java基础——方法

1.方法定义

格式:

public static void()方法名{
    //方法体
}

调用格式:方法名();
示例:判断一个数是否是偶数

public class MethodDemo01 {
    public static void main(String[] args) {
        //调用方法
        ieEvenNumber();
    }
    //需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
    public static  void ieEvenNumber(){
        //定义变量
        int number=10;
        number=9;
        //判断该数据是否是偶数
        if(number%2==0){
            System.out.println("是偶数");
        }else{
            System.out.println("不是偶数");
        }
    }
}

**

2.带参数方法的定义和调用

定义格式:

public static void 方法名(参数){
    
}

调用格式:方法名(参数)
示例:判断一个数是否是偶数

public class MethodDemo03 {
    public static void main(String[] args) {
        //常量值的调用
        isEvenNumber(5);
        //变量的调用
        int number=10;
        isEvenNumber(number);
    }
    //需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
    public static void isEvenNumber(int number){
        if(number%2==0){
            System.out.println("偶数");
        }else{
            System.out.println("不是偶数");
        }
    }
}

3.形参和实参

形参:方法定义中的参数
  等同于变量定义的格式,例如: int number
实参:方法调用中的参数
  等同于使用变量或常量 例如:10 number
带参数方法练习:
需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数
思路:
1.定义一个方法,用于打印两个数字中的较大数
2.为方法定义两个参数,用于接收两个数字
3.使用分支语句分两种情况对两个数字的大小关系进行处理
4.在main()方法中调用定义好的方法(使用常量)
5.在main()方法中调用定义好的方法(使用变量)
示例:

public class MethodDemo04 {
    public static void main(String[] args) {
        //直接传递常量
        getMax(10,20);
        //定义变量,传递
        int a=11;
        int b=12;
        getMax(a,b);
    }
    //1.定义一个方法,用于打印两个数字中的较大数
    //2.为方法定义两个参数,用于接收两个数字
    public static  void getMax(int a,int b){
        //3.使用分支语句分两种情况对两个数字的大小关系进行处理
        if (a>b){
            System.out.println(a);
        }else{
            System.out.println(b);
        }
    }
}

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

定义格式:
public static 数据类型 方法名(参数){
}
调用格式:
1.方法名(参数)
2.数据类型 变量名=方法名(参数)

public class MethodDemo05 {
    public static void main(String[] args) {
        //数据类型 变量名=方法名(参数)
        boolean flag=isEvenNumber(10);
        System.out.println(flag);
    }
    //需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值
    public static boolean isEvenNumber(int number){
        if (number%2==0){
            return true;
        }else {
            return false;
      -  }
    }
}

方法注意事项:
1.方法不能嵌套定义
2.void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
方法的通用格式:

public static 返回值类型 方法名(参数){
    方法体;
    return数据;
}

注释:
public static--------------------------- 修饰符,目前先记住这个格式
返回值类型--------------------------- 方法操作完毕之后返回的数据的数据类型 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写
return方法名---- ----------------------- 调用方法时使用的标识
参数 ---- ----------------------- 由数据类型和变量名组成,各个参数之间用逗号隔开
方法体---- ----------------------- 完成功能的代码块
return---- ----------------------- 如果方法操作完毕,有数据返回,用于把数据返回给调用者
定义方法时,要做到两个明确 :
1.明确返回值类型:主要明确方法操作完毕后是否有数据返回,如果没有,写void;如果有,写对应的数据类型。
2.明确参数:主要是明确参数的类型和数量

方法重载:

方法重载是指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载

  • 多个方法在同一个类中
  • 多个方法据具有相同的方法名
  • 多个方法的参数不相同,类型不同或者数量不同

方法重载特点:

  • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
  • 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否互相构成重载

范例:

/*
    方法重载:
    多个方法在同一个类中
    多个方法据具有相同的方法名
    多个方法的参数不相同,类型不同或者数量不同

    与返回值无关,Java虚拟机会通过参数的不同来区分同名的方法
 */
public class MethodDemo07 {
    public static void main(String[] args) {
        //调用方法
        int result=sum(10,20);
        System.out.println(result);

        double result2=sum(3.5,5.6);
        System.out.println(result2);

        int result3=sum(5,6,7);
        System.out.println(result3);
    }
    //1.求两个int类型的数据和方法
    public static int sum(int a,int b){
        return a+b;
    }
    //2.求两个double类型的数据和的方法
    public static  double sum(double a,double b){
        return a+b;
    }
    //3.求三个int类型数据和的方法
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
}

方法重载练习:

/*
    方法重载练习
 */
public class MethodDemo08 {
    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((long)10,(long)20));

    }
    //定义比较两个数字是否相同的方法compare()方法,参数选择两个int类型
    public static boolean compare(int a,int b){
        System.out.println("调用int:");
        return a==b;
    }
    //byte
    public static boolean compare(byte a,byte b){
        System.out.println("调用byte:");
        return a==b;
    }
    //short
    public static boolean compare(short a,short b){
        System.out.println("调用short:");
        return a==b;
    }
    //定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数
    public static  boolean compare(long a,long b){
        System.out.println("调用long:");
        return a==b;

    }
}

方法参数传递(基本类型):

对于基本类型的参数,形式参数的改变,不影响实际参数的值
范例:

/*
方法参数传递(基本类型):
对于基本类型的参数,形式参数的改变,不影响实际参数的值
 */
public class MethodDemo09 {
    public static void main(String[] args) {
        int number=100;
        System.out.println("调用change方法前:"+number);
        change(number);
        System.out.println("调用change方法后:"+number);
    }
    public static void change(int number){
        number=200;
    }
}

方法参数传递(引用类型):

对于引用类型的参数,形式参数的改变,影响实际参数的值
范例:

/*
方法参数传递(引用类型):
对于引用类型的参数,形式参数的改变,影响实际参数的值
 */
public class MethodDemmo10 {
    public static void main(String[] args) {
        //创建一个数组
        int[] arr={10,20,30};
        System.out.println("调用change()方法前:"+arr[1]);
        change(arr);
        System.out.println("调用change()方法后:"+arr[1]);

    }
    //定义一个change()方法
    public static void change(int[] arr){
        //修改数组里的内容
        arr[1]=200;
    }
}
posted @ 2020-04-09 16:49  秋弦  阅读(91)  评论(0编辑  收藏  举报