課后練習的疑問
父類:
package?com.mooc; //抽象類 public?abstract?class?Shape?{ double?a;//長方形邊長 double?b;//長方形變寬 final?double?c?=?3.14;//圓周率 double?d;//圓的半徑 public?abstract?void?cal();//抽象方法 }
兩個子類:
public?class?Rectangel?extends?Shape?{ public?void?cal()?{ System.out.println("長方形的周長為:"?+?(a+b)*2); System.out.println("長方形的面積為:"?+?a*b); } }
package?com.mooc; public?class?Circel?extends?Shape?{ public?void?cal()?{ System.out.println("圓形的周長為:"?+?2*c*d); System.out.println("圓形的面積為:"?+?c*d*d); } }
測試類:
package?com.mooc; import?java.util.Scanner; public?class?Inttail?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub Shape?s1?=?new?Rectangel(); Shape?s2?=?new?Circel(); //獲取用戶輸入的邊長和變寬 System.out.println("請輸入長方形的邊長:"); Scanner?input?=?new?Scanner(System.in); s1.a?=?input.nextDouble(); System.out.println("請輸入長方形的邊寬:"); Scanner?input2?=?new?Scanner(System.in); s1.b?=?input2.nextDouble(); //輸出長方形的周長和面積 s1.cal(); //獲取用戶輸入的圓的半徑 System.out.println("請輸入圓形的半徑:"); Scanner?input3?=?new?Scanner(System.in); s2.d?=?input3.nextDouble(); input.close(); input2.close(); input3.close(); //輸出圓形的周長和面積 s2.cal(); } }
疑問1:有沒有簡單的方法關(guān)閉輸入?
疑問2:如果用下面方法獲取輸入數(shù)據(jù),代碼怎么寫?
package?com.mooc; import?java.util.Scanner; public?class?Int?{ static?Scanner?sc?=?null; Shape?s1?=?new?Rectangel(); Shape?s2?=?new?Circel(); //獲取用戶輸入的長方形邊長 public?double?getA(){ System.out.println("請輸入長方形的邊長:"); s1.a?=?sc.nextDouble(); return?s1.a; } //獲取用戶輸入的長方形的邊寬 public?double?getB(){ System.out.println("請輸入長方形的邊寬:"); s1.b?=?sc.nextDouble(); return?s1.b; } //獲取用戶輸入的圓的半徑 public?double?getD(){ System.out.println("請輸入圓形的半徑:"); s2.d?=?sc.nextDouble(); return?s2.d; } public?static?void?main(String[]?args)?{ //怎么寫? } }
2017-01-06
完全沒必要寫個方法獲取數(shù)據(jù)吧,Scanner不就哦了,你的close()可以關(guān)閉吧,你的第一個代碼就可以啊。你的屬性也不要寫在shape里面呀,看起來乖怪怪的