第12节方法重载&方法参数

方法重载概述

//两个数据求和方法
public static  int sum(int a,int b){
    return a+b;
}

//三个数据就和方法
public static int sum(int a,int b,int c){
    return a+b+c;
}

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

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

方法重载特点

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

public class MethodDemo07 {
    public static void main(String[] args) {
        //需求1:
        System.out.println(getSum(10,20));

        //需求2:
        double sum;
        sum=getSum(13.14,5.2);
        System.out.println(sum);

        //需求3:
        System.out.println(getSum(10,20,30));
    }
    //需求1:求两个int类型数据和的方法
    public static int getSum(int num1,int num2){
        return num1+num2;
    }

    //需求2:求两个double类型数据和的方法
    public static double getSum(double num1,double num2){
        return num1+num2;
    }

    //需求3:求三个int类型数据和的方法
    public static int getSum(int num1,int num2,int num3){
        return num1+num2+num3;
    }
}

 

方法重载练习

  需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)

package com.itheima_01;

public class MethodDemo08 {
    public static void main(String[] args) {
        getNumber(10,20);
        getNumber(1,1);
        getNumber(15698,15698);
        getNumber(20,22);

    }

    //需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
    public static void getNumber(byte num1,byte num2){
        if(num1==num2){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }
    }

    public static void getNumber(short num1,short num2){
        if(num1==num2){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }
    }

    public static void getNumber(long num1,long num2){
        if(num1==num2){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }
    }

    public static void getNumber(int num1,int num2){
        if(num1==num2){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }
    }
}

  思路:

  1、定义比较两个数字的是否相同的方法getNumber()方法,参数选中两个int型参数

  2、定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数

  3、定义所有的重载方法,两个byte类型与两个short类型参数

  4、完成方法的调用,测试运行结果

package com.itheima_01;

public class MethodDemo08 {
    public static void main(String[] args) {
        boolean _int= getNumber(10,20);
        boolean _short= getNumber((short) 1,(short)1);
        boolean _long= getNumber((long)15698,(long)15698);
        boolean _byte= getNumber((byte)20,(byte)22);
        System.out.println(""+_int+_short+_long+_byte);
    }

    //需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
    public static boolean getNumber(byte num1,byte num2){
        System.out.println("byte");
        return num1==num2;
    }

    public static boolean getNumber(short num1,short num2){
        System.out.println("short");
        return num1==num2;
    }

    public static boolean getNumber(long num1,long num2){
        System.out.println("long");
        return num1==num2;
    }

    public static boolean getNumber(int num1,int num2){
        System.out.println("int");
        return num1==num2;
    }
}
getNumber(15698L,15698L);//表示long类型可以在数据后面直接加L就可以了。

 

方法的参数传递

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

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

package com.itheima_01;

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;
    }
}

  输出结果:

调用change方法前100
调用change方法后100

 

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

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

package com.itheima_01;

public class MethodDemo10 {
    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]);
    }
    public static void change(int[] arr){
        arr[1]=200;
    }
}

  输出结果:

调用change方法前20
调用change方法后200

 

posted @ 2021-01-24 11:36  Testtext  阅读(100)  评论(0)    收藏  举报