方法過載
第一題:語法練習
-
語法點:方法定義,方法過載
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟:
-
定義類 Test1,類中定義 main方法,定義int型別a為10, b為10.
-
定義printNum方法,引數為(int iVar, int iVar2),返回值無,輸出iVar和iVar2的值
-
定義doubling方法,引數為(int r, int p),返回值無,方法內r翻倍,p翻倍,並呼叫printNum方法,輸出r和p的值
-
定義doubling方法,引數為(int r),返回值int, 方法內r翻倍,返回r.
-
main方法中,呼叫printNum方法,傳入a,b
-
main方法中,呼叫doubling方法,傳入a,b
-
main方法中,呼叫printNum方法,傳入a,b
-
main方法中,呼叫doubling方法,傳入a,用a接收返回值
-
main方法中,呼叫doubling方法,傳入b,用b接收返回值
-
main方法中,呼叫printNum方法,傳入a,b
-
-
參考答案:
public class Test1 { public static void main(String[] args) { // 定義int型別a為10, b為10. int a = 10; int b = 10; printNum(a, b); doubling(a, b); printNum(a, b); System.out.println("***********************"); a = doubling(a); b = doubling(b); printNum(a, b); } // 定義printNum方法,引數為(int iVar, int iVar2),返回值無,輸出iVar和iVar2的值 public static void printNum(int iVar, int iVar2) { System.out.println("iVar:" + iVar + ", iVar2:" + iVar2); } // 定義doubling方法,引數為(int r, int p),返回值無,方法內r翻倍,p翻倍,並呼叫printNum方法,輸出r和p的值 public static void doubling(int r, int p) { r *= 2; p *= 2; System.out.println("翻倍:r=" + r + ",p=" + p); } // 定義doubling方法,引數為(int r),返回值int, 方法內r翻倍,返回r. public static int doubling(int r) { r *= 2; return r; } }
第二題:語法練習
-
語法點:方法定義,if
-
按步驟編寫程式碼,效果如圖所示:
-
編寫步驟:
-
定義類 Test2,類中定義 main方法
-
定義doCheck方法,引數為(int iVar),返回值boolean型別
-
doCheck方法內,定義變數boolean flag.
-
doCheck方法內,判斷num是否為偶數.
-
如果是偶數,使用for迴圈,初始化值i為0,i<=20進入迴圈,步進表示式i++
-
迴圈內,num-=i;
-
flag賦值為true.
-
否則是奇數,使用for迴圈,初始化值i為0,i<=20進入迴圈,步進表示式i++
-
迴圈內,num+=i;
-
flag賦值為false.
-
輸出num的值
-
返回flag
-
呼叫doCheck方法,傳入2,儲存返回值,並輸出
-
呼叫doCheck方法,傳入3,儲存返回值,並輸出
-
-
參考答案:
public class Test2 { public static void main(String[] args) { boolean b = doCheck(2); System.out.println(b); boolean b1 = doCheck(3); System.out.println(b1); } // 定義doCheck方法,引數為(int iVar),返回值boolean型別 public static boolean doCheck(int num){ // 3.doCheck方法內,定義變數boolean flag. boolean flag ; // 4.doCheck方法內,判斷num是否為偶數. if (num % 2== 0 ) { // 如果是偶數,使用for迴圈,初始化值i為0,i<=20進入迴圈,步進表示式i++ for (int i = 0; i <= 20; i++) { num-=i; } flag = true; }else { // 否則是奇數,使用for迴圈,初始化值i為0,i<=20進入迴圈,步進表示式i++ for (int i = 0; i <= 20; i++) { num+=i; } flag = false; } // 輸出num的值 System.out.println("num:"+ num); return flag; } }
第四題:需求實現
-
定義showColor方法,根據英文單詞,輸出對應的顏色。
-
程式碼實現,效果如圖所示:
-
參考答案:
public class Test4 { public static void main(String[] args) { showColor("red"); } // showColor方法中,使用switch語句,判斷顏色. public static void showColor(String color) { switch (color) { case "red": System.out.println(color + "是紅色!"); break; case "blue": System.out.println(color + "是藍色!"); break; case "green": System.out.println(color + "是綠色!"); break; default: System.out.println(color+" 顏色未知!"); } } }
第五題:需求實現
-
定義getValue方法,獲取三個數中的最值,能夠通過字串,指定獲取最大值或者最小值。
-
程式碼實現,效果如圖所示:
-
開發提示:
-
getValue中,帶有String型別引數,可以指定『大』或者『小』
-
分別定義最大值方法,最小值方法,以供getValue呼叫。
-
-
參考答案:
public class Test5 { public static void main(String[] args) { getExtValue("小" , 5, 6, 7); } // 定義getExtValue方法,引數為(String str, int n, int n2, int n3),返回值無 public static void getExtValue(String ext , int n1,int n2 , int n3) { switch (ext) { // // 當str為大時,呼叫getMax方法,獲取n,n2,n3中的最大值輸出 case "大": int max = getMax(n1,n2,n3); System.out.println("最大值為:" + max); break; // 當str為小時,呼叫getMin方法,獲取n,n2,n3中的最小值輸出 case "小": int min = getMin(n1,n2,n3); System.out.println("最小值為:" + min); break; default: System.out.println("指令有誤!"); } } private static int getMin(int i, int j, int k) { int min = i < j ? (i < k ? i : k) : (j < k ? j : k); return min ; } private static int getMax(int i, int j, int k) { int max = i > j ? (i > k ? i : k) : (j > k ? j : k); return max ; } }
第六題:需求實現
-
定義printX方法,列印任意行的圖形。
-
程式碼實現,效果如圖所示:
-
開發提示:
-
參考之前的練習,將程式碼抽取為一個方法。
-
-
參考答案:
public class Test6 { public static void main(String[] args) { printX(10); } /* 2.定義printX方法,引數為(int m) , 返回值無 3.printX方法中,使用for迴圈,初始化變數x = 1,如果x<=m進入迴圈,步進表示式x++ 4.for迴圈內部,再巢狀定義一套for迴圈,初始化變數y = 1,如果y<=m進入迴圈,步進表示式y++ 5.在內迴圈內部,判斷x==y 或者 x+y==1+m ,則列印"O",否則列印"*" */ public static void printX(int m) { for (int x = 1; x <= m; x++) {//迴圈7行 for (int y = 1; y <= m; y++) {//迴圈7列 if (x == y || x + y == m + 1) {//對角線列印O System.out.print("O"); } else { System.out.print("*");//其他位置列印. } } System.out.println();//換行 } } }
第七題:需求實現
-
定義round方法,接收一位小數,實現四捨五入運算,並返回結果。
-
程式碼實現,效果如圖所示:
·
-
開發提示:
-
round方法中,引數+0.5後,轉換為int型別,並返回。
-
-
參考答案:
public class Test7 { public static void main(String[] args) { System.out.println( 10.1 + "->"+ round(10.1)); System.out.println( 10.4 +"->"+ round(10.4)); System.out.println( 10.5 +"->"+ round(10.5)); System.out.println( 10.9 +"->"+ round(10.9)); } // 定義round方法,引數為(double d) , 返回值int public static int round(double d) { // round方法中,d+0.5後,轉換為int型別,並返回. int n = (int) (d + 0.5); return n; } }