我創建了一個名爲Times的類,我必須構造4個重載的方法。我只想幫助理解重載的方法,至少也許可以幫助第一個方法。我真的很感激。謝謝:)重載方法的幫助
- 乘法2點的整數,並返回(整數)產物
- 乘法3點的整數,並返回(整數)產物
- 乘法2個值和返回的(雙)產品
- 乘法3個精度值和返回(雙)產品
我創建了一個名爲Times的類,我必須構造4個重載的方法。我只想幫助理解重載的方法,至少也許可以幫助第一個方法。我真的很感激。謝謝:)重載方法的幫助
「重載方法」只是意味着方法將具有相同的名稱(並且在同一個類中)。但是,參數的數量或類型需要不同。
由於所有乘法的東西,「乘」作爲一個名字是有道理的。
第一招:
乘2點的整數,並返回 (整數)產品
所以它返回一個整數(一個int),被命名爲 「正片疊底」,需要2個整數作爲參數,這給了我們:
int multiply(int a, int b) {
它返回的產品,所以身體是:
return a * b;
然後,我們有一個做:
}
這給了我們:
int multiply(int a, int b) {
return a * b;
}
使用他人相同的方法和相同的名稱。
它看起來財產以後這樣的:
public class Times {
public int mult(int a, int b) {
return a*b;
}
public int mult(int a, int b, int c) {
return a*b*c;
}
//2 more overloaded versions to come here
}
至於理解它們的含義 - 編譯代碼時,編譯器通過查看參數來確定使用哪些方法(全部調用相同的名稱)。
如此例如這樣的事情
int a = 1;
int b = 1;
Times t = new Times();
t.mult(a,b);
編譯器將挑選的2種MULT方法我演示了1,而對於這一點:
int a = 1;
int b = 1;
int c = 2;
Times t = new Times();
t.mult(a,b,c);
它會選擇第二個(以關於參數的數量)
是這樣的?
public class Times {
public static int multiply(int a, int b) {
return a * b;
}
public static int multiply(int a, int b, in c) {
return multiply(a, b) * c;
}
public static double multiply(double a, double b) {
return a * b;
}
public static double multiply(double a, double b) {
return multiply(a, b) * c;
}
}
你可以做這樣的事情
public class Times {
public static void main(String[] args) {
System.out.println(multiplyInt(1,2));
System.out.println(multiplyDoubles(2.0,3.0));
}
public static int multiplyInt(int... numbers){
int multiply = 1;
for(int number : numbers){
multiply = multiply*number;
}
return multiply;
}
public static double multiplyDoubles(double... numbers){
double multiply = 1;
for(double number : numbers){
multiply = multiply*number;
}
return multiply;
}
}
在這裏,你有什麼是方法重載一個溫柔的描述: http://en.wikipedia.org/wiki/Method_overloading – Alexandre