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?{
//方法實(shí)現(xiàn)
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("請(qǐng)輸入長(zhǎng)方形的長(zhǎng),款,圓形的半徑:");
a=scanner.nextDouble();
b=scanner.nextDouble();
c=scanner.nextDouble();
Caculate?caculate?=new?Caculate();
System.out.println("長(zhǎng)方形周長(zhǎng)為:"+caculate.changzhouchang(a,?b)+"\n"+"長(zhǎng)方形面積為:"+caculate.changmianji(a,?b)+"\n"+"圓形周長(zhǎng)為:"+caculate.circlezhouchang(c)+"\n"+"圓形面積為:"+caculate.circlemianji(c));
scanner.close();
}
}
2019-01-22
圓形和長(zhǎng)方形都是幾何圖形,所以定義幾何圖形為抽象父類
并且擁有兩個(gè)抽象方法 計(jì)算周長(zhǎng)和面積
分別新增兩個(gè)子類,圓形、長(zhǎng)方形,繼承于幾何圖形,實(shí)現(xiàn)抽象方法計(jì)算周長(zhǎng)和面積
再新增test類,要用到流程控制,
請(qǐng)用戶選擇要計(jì)算
1、圓形/長(zhǎng)方形
2、周長(zhǎng)/面積
再要求用戶輸入(如果是圓形輸入半徑,如果是長(zhǎng)方形輸入長(zhǎng)和寬)
判斷用戶輸入是否合理
再給出相應(yīng)提示或結(jié)果。
寫代碼不是要用最少的類或者最少的代碼量去解決問題,而是要做到最優(yōu)化處理,
這樣即便之后我要再引入新的幾何圖形就能在最短的時(shí)間處理完成,
要注意代碼的可擴(kuò)展性,希望能對(duì)你有所幫助!
2019-02-03
不用這么麻煩直接抽象類里定義兩個(gè)方法一個(gè)周長(zhǎng)一個(gè)面積然后定義兩個(gè)子類自動(dòng)創(chuàng)建的方法里面你可以自己隨便添加變量然后計(jì)算值,抽象類只是限制了子類的方法必須有那些方法但是他沒有限定方法里你需要做些什么事情。