面向對象——類的成員之方法
方法的定義
權限修飾符 返回值類型 方法名(參數列表){ 方法體 }如果有返回值,則是返回值數據類型;如果沒有返回值,則返回值類型爲void。另外在方法中的變量是局部變量,局部變量是沒有默認的初始值的。而前一節中的成員變量如果不賦初值,它的值就是該數據類型的默認值。補充:在這裏特別想提出一點:關於 return的作用 和 void人們常常說有void就不能有return,但其實並不完全是這樣。請看這個簡單的例子:public void test(){
int a=0;
int b=10;
System.out.println(a+b);
return;//return的作用是結束這個方法的執行。
}
所以在這裏說說return的作用:
1.當函數有返回值時,”return 返回值”;
2.當方法遇到某些情況,程序員想要結束這個方法時 可以用“return;”來結束這個方法,就算是該方法爲void也可以,因爲在這裏並沒有返回值。方法的調用
1.如果此方法是本類中的普通方法/靜態方法,則在本類的普通方法中可以直接調用。如:findWork();
2.如果類A在類B中創建了對象aa,則調用類A中的findWork()方法就需要aa.findWork();
3.靜態方法的調用方式除了第二種方式,還有一種是類名.findWork();
方法的重寫與重載
重載:在同一個類中定義多個方法,這些方法方法名相同,參數列表不同。這些方法就稱爲方法的重載
重寫:子類中有和父類“一樣“的方法,一樣指的是方法參數相同,形參列表相同。重寫最基本條件就是要有類的繼承,在繼承的基礎上,才能談重寫。
重寫規則:兩同兩小一大
重載規則:方法名相同,參數列表不同
- 兩同:方法名相同,參數列表相同
- 兩小:異常要比父類中的方法要小或者相同
- 返回值類型要比父類中的方法小或者相同(基本類型必須相同)
- 一大:訪問權限要比父類中的方法要大或者相同
- 子父類方法同爲static或非static
- 不看返回值以及返回值是否相同
- 與形參名無關
- 參數列表:參數類型+參數個數
個人覺得理解重載最好的方式就是:想想調用這個方法的時候,因爲調用時只要給出方法名和參數就能確定調用的方法是哪一個。所以形參名沒有任何區別意義。另外關於返回值類型,調用方法時根本就不關心返回值,只關心執行的是不是想要的方法。因此只要記住核心方法名相同,形參列表不同即可。
另外關於Java的封裝特性,方法的存在就是把某一個功能封裝,通過調用這個方法來實現這個功能。我在最開始學Java的時候習慣性的把所有的代碼都放在main函數裏,這樣的習慣可能很方便,但是難以閱讀,後來才慢慢的對代碼進行封裝,形成模塊。