亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于4-3抽象類課后練習的問題

現有Shape圖形類,用Rectangle矩形和Circle圓形子類,求圖形的周長和面積。

能不能實現在Initail類里,隨意輸入任意數字,得到不同的矩形面積和周長,得到不同的圓形面積和周長?

我做的只能實現固定半徑和長還有寬,求得矩形面積和周長,圓形的面積和周長

正在回答

4 回答

//父類代碼。
public?abstract?class?shape?{
????public?abstract?void?length();
????public?abstract?void?square();
}
//長方形子類代碼。
public?class?rectangle?extends?shape?{
????Scanner?scan1=new??Scanner(System.in);
????int?l=scan1.nextInt();
????Scanner?scan2=new??Scanner(System.in);
????int?w=scan2.nextInt();
????????public?void?length()?{
????????int??length=2*(l+w);
????????System.out.println("長方形的周長為:"+length);
????}
????public?void?square()?{
????????int??square=w*l;
????????System.out.println("長方形的面積為:"+square);
????}
}
//圓形子類代碼。
public?class?circle?extends?shape?{
????Scanner?scan1=new??Scanner(System.in);
????double?r=scan1.nextDouble();
????public?void?length()?{
????????double?length=2*3.14*r;
????????System.out.println("圓形的周長為:"+length);
????}
????public?void?square()?{
????????double?square=3.14*r*r;
????????System.out.println("圓形的面積為:"+square);
????}
}
//測試類代碼。
public?class?test?{
????public?static?void?main(String[]?args)?{
????????System.out.println("請輸入您要查詢的圖形類型:1代表長方形,2代表圓形。");
????????Scanner?input?=new?Scanner(System.in);
????????int?num=input.nextInt();
????????switch?(num)?{
????????case?1:
????????????System.out.println("請依次輸入長方形的長度和寬度:");
????????????shape?shp1=new?rectangle();
????????????shp1.length();
????????????shp1.square();?????????
????????????break;
????????case?2:
????????????System.out.println("請輸入圓形的半徑:");
????????????shape?shp2=new?circle();
????????????shp2.length();
????????????shp2.square();?????????
????????????break;
????????default:
????????????System.out.println("您輸入的數值有誤,請重新輸入。");
????????}
????}
}

這是我剛發布的問題里面的代碼,能運行,只是有點小瑕疵:一次只能計算一種圖形,下一次需要重新運行才可以。

0 回復 有任何疑惑可以回復我~
#1

慕數據3565510 提問者

非常感謝!
2017-05-20 回復 有任何疑惑可以回復我~
#2

qq_Blackhumor_0

可以多次計算嗎?解決了沒
2017-06-01 回復 有任何疑惑可以回復我~

??Scanner?scan1=new??Scanner(System.in);

????int?l=scan1.nextInt();

????Scanner?scan2=new??Scanner(System.in);

這些表達的什么內容啊 ?


0 回復 有任何疑惑可以回復我~
#1

qq_Blackhumor_0

就是一個輸入,更C語言中的SCANF一樣的。
2017-06-01 回復 有任何疑惑可以回復我~

可以啊,通過父類引用子類對象,再通過instanceof判斷它屬于哪個類,然后強制轉換,調用相應的方法得到周長和面積

0 回復 有任何疑惑可以回復我~

需要增加輸入語句,可以按照這樣的邏輯:1.選擇矩形還是圓(可以用輸入1代表矩形,輸入2代表圓);2.輸入長寬或者半徑3.輸出周長和面積

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531220    人
  • 解答問題       6327    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

關于4-3抽象類課后練習的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號