日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

簡述程序設(shè)計方法的基本思想 程序設(shè)計方法學(xué)主要學(xué)什么( 五 )


接收返回值
具有返回值的方法在調(diào)用后,是不是一定要對返回值進(jìn)行接收呢?當(dāng)然不是必須的,如果不接收,方法的值也會正常返回,只不過隨即被丟棄了而已 。接收時將方法調(diào)用語句看成一個整體,直接用對應(yīng)類型的變量賦值接收即可 。
四、方法的重載
<span id=”jump”></span>
1. 重載的概念
重載指的是在一個類中,可以定義多個同名的方法,區(qū)別在于參數(shù)列表不同 。對于重載的概念還是很好理解的,無非是描述了一種現(xiàn)象,在一個類中存在了很多名字相同的方法,大家需要掌握的就是如何定義才符合重載的規(guī)則,以及重載有什么用?
方法名稱相同,參數(shù)列表不同
不要看這個概念簡單,還是有很多同學(xué)在此翻車 。方法名稱相同很好理解,完全一致的才叫做相同,這里對大小寫敏感 。另外一個概念是:參數(shù)列表不同,大家一定要注意,參數(shù)列表相同與否,是靠參數(shù)類型以及排列順序來決定的,與參數(shù)名稱無關(guān) 。因為參數(shù)列表中聲明的參數(shù)名稱只是傳入?yún)?shù)的一個代表,并不具備什么具體的區(qū)分意義 。
public class Test{
// 求兩個整數(shù)和的方法:plus
public int plus(int a,int b){
return a + b;
}
// 參數(shù)列表相同,不構(gòu)成重載,不能在類中同時存在
public int plus(int c,int d){
return c + d;
}
// 參數(shù)列表不同,構(gòu)成重載
public double plus(double a,double b){
return a + b;
}
// 參數(shù)列表不同,構(gòu)成重載,但是不定參數(shù)容易構(gòu)成調(diào)用的歧義,不推薦
public int plus(int… a){
return 0;
}
// 參數(shù)列表相同,方法名稱不同,不構(gòu)成重載,可以在類中同時存在
public int Plus(int a,int b){
return a + b;
}
}
方法重載有什么用?
在很多時候,我們使用方法完成一個功能或邏輯,存在很多種情況,有些情況來自于代碼邏輯處理的過程中,也有些情況是要對不同的參數(shù)類型做出不同的操作 。這個時候我們就可以利用重載的特點,用相同的方法名代表我們要處理的邏輯是類似的,然后在參數(shù)列表中聲明不同的參數(shù)類型,這樣就可以避免我們在方法中再繁雜的寫各種參數(shù)個數(shù)的判斷,參數(shù)類型的判斷,更加利于維護(hù) 。同時,使用相同的方法類型,也使得使用者在調(diào)用時變得十分方便,不需要在同一功能上記憶各種不同的方法名稱,同時又能很好的解決問題 。
2. 重載方法的調(diào)用
對于重載方法的調(diào)用,由于方法名稱相同,jvm主要就是根據(jù)傳入的參數(shù)類型來進(jìn)行區(qū)分,效果如下:
public class Test{
public static void main(String[] args){
int a = 1,b = 2;
int c = plus(a,b);// 調(diào)用plus(int a,int b)
double m = 1.0,n = 2.0;
double d = plus(m,n);// 調(diào)用plus(double a,double b)
}
// 求兩個整數(shù)和的方法:plus
public static int plus(int a,int b){
return a + b;
}
// 方法名相同,參數(shù)列表不同,構(gòu)成重載
public static double plus(double a,double b){
return a + b;
}
}
從上面的例子我們可以看到,在執(zhí)行方法調(diào)用時主要是通過參數(shù)類型來進(jìn)行區(qū)分的 。但是當(dāng)方法中出現(xiàn)不定參數(shù)時要尤為注意:
public class Test{
public static void main(String[] args){
int a = 1,b = 2,c = 3;
int d = plus(a);// 編譯失敗,與plus(int… a)和plus(int a,int… b)都匹配
int e = plus(a,b);// 編譯成功,調(diào)用plus(int a,int b)
int f = plus(a,b,c);// 編譯失敗,與plus(int… a)和plus(int a,int… b)都匹配
int g = plus(new int[]{a,b});// 編譯成功,調(diào)用plus(int… a)
int h = plus(a,new int[]{b,c});// 編譯成功,調(diào)用plus(int a,int… b)

推薦閱讀