方法【贰】—— 重载

假设要在一个程序中实现一个对数字要求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况设计不同的方法。

定义

方法名相同,参数个数或类型不同

注意事项

构造方法不可以重写但可以重载

重载方法参数必须不同

参数个数不同

如method(int x)与method(int x,int y)不同

参数类型不同

如method(int x)与method(double x)不同

参数顺序不同

如method(int x,double y)与method(double x,int y)不同

无公共参数,不是重载

   public static void f1(int x){
    }
    public static int f1(int y){
    }
    public static void f1(int y){
        
    }

方法名与参数类型相关与返回值无关

如void method(int x)与int method(int y)不是方法重载,不能同时存在

重载与具体的变量标识符无关

如method(int x)与method(int y)不是方法重载,不能同时存在

参数传递

调用一个方法时,会把指定数值,传递给方法中的参数,这样方法中的参数就拥有了指定的值,可以使用该值,这种传递方式成为参数传递。

形式参数

定义方法时,参数列表种的变量

实际参数

调用方法时,传入给定方法的数值

package com.xyz.www;
public class Demo01 {
    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        // 调用方法时,传入的数值称为实际参数
        change(a, b);
        System.out.println("a=" + a);  
        System.out.println("b=" + b);  
    }
    // 方法
    public static void change(int a, int b) {
        a = 200;
        b = 500;
    }
}

程序的运行结果如下:

public class Demo02 {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3 };
        change(arr); // 调用方法时,传入的数之称为实际参数
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);    //2  4   5
        }
    }
    public static void change(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            arr[i] *= 2;
        }
    }
}

程序的运行结果如下:

参数传递图解与结论

通过上面的两段程序可以得出如下结论:
○ 当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响
○ 当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响

posted @ 2020-05-25 19:09  诸葛孔萌  阅读(79)  评论(0编辑  收藏  举报