在JavaScript的方法中,return(返回)兩個值或者多個值的方法
阿新 • • 發佈:2021-12-23
方法過載
java 中允許同一個類中,多個同名方法的存在,但要求形參列表不一致
過載的好處
- 減輕了起名的麻煩
- 減輕了記名的麻煩
過載的注意事項
-
方法名:必須相同
-
形參列表:必須不同
-
形參型別或個數,或順序,必須有一個不一樣,引數名無要求
public void calculate(int n1,int n2) { int ret =n1+n2; System.out.println("有兩個整數形參的calculate被呼叫"); System.out.println(n1+ "+" + n2 +"=" + ret); } // 以下沒有構成過載,而是方法的重複定義 // public void calculate(int a,int n2) { // double ret =n1+n2; // System.out.println(n1+ "+" + n2 +"=" + ret); // }
-
-
返回型別:無要求
public void calculate(int n1,int n2) { int ret =n1+n2; System.out.println("有兩個整數形參的calculate被呼叫"); System.out.println(n1+ "+" + n2 +"=" + ret); } // 以下沒有構成過載,而是方法的重複定義,改變返回值型別, // 並沒有作用到判斷到底呼叫那個方法 // public intvoid calculate(int a,int b) { // int ret =n1+n2; // return ret; // }
過載練習
題目:
編寫程式,類 Methods 中定義三個過載方法並呼叫。方法名為 m。 三個方法分別接收一個 int 引數、兩個 int 引數、一個字串引數。分別執行平方運算並輸出結果, 相乘並輸出結果,輸出字串資訊。在主類的 main ()方法中分別用引數區別呼叫三個方法
package Object_Practice; public class OverLoadExercise { public static void main(String[] args) { Method method = new Method(); method.m(2);//4 method.m(2,3);//6 method.m("我真的很不錯"); } } class Method{ public void m(int num) { int ret =num * num; System.out.println(num+"的平方="+ret); } public void m(int num1, int num2) { int ret = num1 * num2; System.out.println(num1+ "*"+ num2 + "=" + ret); } public void m(String str) { System.out.println("傳入是String"+str); } }
題目:
定義三個過載方法 max(),第一個方法,返回兩個 int 值中的最大值,第二個方法,返回兩個 double 值中的最大值,第三個方法返回三個 double 值中的最大值,並分別呼叫三個方法
package Object_Practice;
public class OverLoadExercise {
public static void main(String[] args) {
/*
* 過載練習1,進行計算
*/
System.out.println("過載練習題一");
Method method = new Method();
method.m(2);//4
method.m(2,3);//6
method.m("我真的很不錯");
System.out.println("=========");
System.out.println("過載練習題二");
/*
* 過載練習2
*/
System.out.println("max=" + method.max(10, 20) );
System.out.println("max=" + method.max(1.1, 2.2));
System.out.println("max=" + method.max(1.1, 2.2,3.3));
}
}
class Method{
/*
* 過載練習1
*/
public void m(int num) {
int ret =num * num;
System.out.println(num+"的平方="+ret);
}
public void m(int num1, int num2) {
int ret = num1 * num2;
System.out.println(num1+ "*"+ num2 + "=" + ret);
}
public void m(String str) {
System.out.println("傳入是String"+str);
}
/*
* 過載練習2
* 返回最大值
*/
public int max(int num1 , int num2) {
return num1 > num2? num1:num2;
}
public double max(double num1 , double num2) {
return num1 > num2? num1:num2;
}
public double max(double num1 , double num2,double num3) {
double max = num1 > num2? num1:num2;
return max>num3 ? max:num3;
}
}
注意
- 方法過載,優先匹配不需要強制轉換的過載方法