用java画海绵宝宝_java 方法的重载
方法的重載:一個類中允許出現一個以上的同名方法,必須保證同名方法的參數列表不同
好處:方便閱讀,優化程序設計
重載規則:重載方法名相同,但每個重載方法都必須有一個獨一無二的參數類型列表,方法的返回值也可不同
參數個數和類型相同但參數順序不同也可以區分這兩個方法,不過一般情況下不這樣做,因為會讓代碼難以維護
1.基本重載
1 public classMyMethod{2 //加法運算 x+y=z
3 public int add(int a,intb){4 return a+b;5 }6 public double add(double a,doubleb){7 return a+b;8 }9 public static voidmain(String[] args){10 MyMethod mymethod = newMyMethod();11 int a1 = mymethod.add(1,2);12 double a2 = mymethod.add(1.2,2.3);13 }14 }
2.涉及基本類型的重載
基本類型能從一個"較小"的類型自動提升至一個"較大"的類型,此過程涉及到重載,會有些特殊的地方會混淆
如果有某個重載方法接受int型參數,他就會被調用
如果傳入的數據類型(實際參數類型)小于方法中聲明的形式參數類型,實際參數類型就會被提升
char類型不同,如果無法找到接收char類型參數的方法,就會把char直接提升至int
如果傳入的參數較大,就得通過類型轉換來執行窄化轉換
3.其他:運算問題
在寫重載方法時遇到一個小問題:以上程序沒問題,但是重載一個byte和short類型的參數方法時會報錯
1 public classMyMethod{2 //加法運算 x+y=z
3 public int add(int a,intb){4 return a+b;5 }6 public byte add(byte a,byteb){7 return (byte)(a+b); //必須強制轉換,否則報錯
8 }9 public short add(short a,shortb){10 return (short)(a+b); //必須強制轉換,否則報錯
11 }12 public static voidmain(String[] args){13 MyMethod mymethod = newMyMethod();14 byte a1 = mymethod.add(1,2);15 short a1 = mymethod.add(1,2);16 /*
17 //錯誤寫法18 byte a = 10;19 byte b = 20;20 byte c = a+b; //int+int21
22 short a = 10;23 short b = 20;24 short c = a+b;25 */
26 }27 }
以上程序中在調用byte a1 = mymethod.add(1,2);和short a1 = mymethod.add(1,2);時會報錯:可能損失精度
解決方法:進行強制轉換 return (byte)(a+b);
原因:算術運算(+,-,*,/,%):在沒有出現long類型的情況下,算術運算符兩邊的數據都會按照int運算,會自動將數據類型提升為int
在算數運算中存在long類型,則全部按照long運算。
總結
以上是生活随笔為你收集整理的用java画海绵宝宝_java 方法的重载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mfc tabcontrol 修改白色背
- 下一篇: php class使用方法,PHP调试类