1. 程式人生 > 其它 >面向物件(3):引數問題(方法上的形參是引用/基本資料型別)

面向物件(3):引數問題(方法上的形參是引用/基本資料型別)

引數問題(方法上的形參是引用/基本資料型別)

1、當方法上的形參是引用資料型別(類)

類是一個引用資料型別,可以當作形參的資料型別;
當今後看到一個方法上的形參是一個引用資料型別的時候
實際上它需要的是一個對應類的物件的地址值
定義一個動物叫的方法

//先定義一個動物類
class Animal {
//再定義一個叫的方法
    public void shout(){
        System.out.println("叫一叫");
    }
}
=====================================
//再定義一個類(並不是測試類)
class Demo1{
    //在該類中的引數是Animal a
    public void fun1(Animal a){
        a.shout();
    }
}
======================================
//再定義一個測試類,想要呼叫fun1方法
class Test {
    public static void main(String[] args) {
        //建立Demo1物件,來呼叫fun1這個方法
        Demo1 x = new Demo1();

        //建立Animal物件
        Animal y = new Animal();
        x.fun1(y);
    }
}

執行結果如下:
        叫一叫

        Process finished with exit code 0

========================================
/*
在測試類中調取fun1這個方法,需要傳入引數y
但是這個引數y是一個類:Animal
實際上它需要的是一個對應類的物件的地址值
所以在x.fun1(y);之前要建立一個Animal物件,才能得到地址值
所以第一個y就代表著new Animal,將new Animal傳入給x.fun1(y)的y
然後x.fun1(y)的y傳入到fun1方法裡去了
就代表Animal a = y = new Animal
 */
總結:測試類呼叫fun1,實際上呼叫的就是Animal類中的shout方法

當看到一個類中的方法,其引數是一個引用資料型別,那麼在測試類呼叫該方法的時候,

除了要建立該方法對應的物件外,還要在該方法前面建立一個引用資料型別對應的物件

2、當方法上的形參是基本資料型別

當方法的引數是基本型別的時候,
呼叫該方法的時候,傳入的是該基本資料型別實際的值
//建立一個類,類中有求和的方法
//先建立一個類
class Demo2{
    //再建立求和的方法
    public void fun2(int m,int n){
        System.out.println(m+m);
    }
}

//建立一個測試類
class Test2{
    public static void main(String[] args) {
        //建立Demo2物件
        Demo2 xx = new Demo2();
        //呼叫Demo2中的fun2方法
        xx.fun2(10,20);//直接輸入你想要的值
  /*或者
  		int i =10;
  		int j =20;
  		xx.fun2(i,j);
        */
    }
}

執行結果如下:
        20

        Process finished with exit code 0