面向物件(3):引數問題(方法上的形參是引用/基本資料型別)
阿新 • • 發佈:2021-12-05
引數問題(方法上的形參是引用/基本資料型別)
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