package?com;
public?abstract?class?Shape?{
static?double?Pi=3.14;
//抽象類方法定義
public?abstract?double?changzhouchang(double?a,double?b);
public?abstract?double?circlezhouchang(double?c);
public?abstract?double?changmianji(double?a,double?b);
public?abstract?double?circlemianji(double?c);
}
package?com;
public?class?Caculate?extends?Shape?{
//方法實現
public?double?changzhouchang(double?a,double?b)?{
return?(a+b)*2;
}
public?double?circlezhouchang(double?c)?{
return?2*Pi*c;
}
public?double?changmianji(double?a,double?b)?{
return?a*b;
}
public?double?circlemianji(double?c)?{
return?Pi*c*c;
}
}
package?com;
import?java.util.*;
public?class?Test?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
double?a,b,c;
System.out.println("程序開始:");
Scanner?scanner=new?Scanner(System.in);
System.out.println("請輸入長方形的長,款,圓形的半徑:");
a=scanner.nextDouble();
b=scanner.nextDouble();
c=scanner.nextDouble();
Caculate?caculate?=new?Caculate();
System.out.println("長方形周長為:"+caculate.changzhouchang(a,?b)+"\n"+"長方形面積為:"+caculate.changmianji(a,?b)+"\n"+"圓形周長為:"+caculate.circlezhouchang(c)+"\n"+"圓形面積為:"+caculate.circlemianji(c));
scanner.close();
}
}
2019-01-22
圓形和長方形都是幾何圖形,所以定義幾何圖形為抽象父類
并且擁有兩個抽象方法 計算周長和面積
分別新增兩個子類,圓形、長方形,繼承于幾何圖形,實現抽象方法計算周長和面積
再新增test類,要用到流程控制,
請用戶選擇要計算
1、圓形/長方形
2、周長/面積
再要求用戶輸入(如果是圓形輸入半徑,如果是長方形輸入長和寬)
判斷用戶輸入是否合理
再給出相應提示或結果。
寫代碼不是要用最少的類或者最少的代碼量去解決問題,而是要做到最優化處理,
這樣即便之后我要再引入新的幾何圖形就能在最短的時間處理完成,
要注意代碼的可擴展性,希望能對你有所幫助!
2019-02-03
不用這么麻煩直接抽象類里定義兩個方法一個周長一個面積然后定義兩個子類自動創建的方法里面你可以自己隨便添加變量然后計算值,抽象類只是限制了子類的方法必須有那些方法但是他沒有限定方法里你需要做些什么事情。