關于4-3抽象類課后練習的問題
現有Shape圖形類,用Rectangle矩形和Circle圓形子類,求圖形的周長和面積。
能不能實現在Initail類里,隨意輸入任意數字,得到不同的矩形面積和周長,得到不同的圓形面積和周長?
我做的只能實現固定半徑和長還有寬,求得矩形面積和周長,圓形的面積和周長
現有Shape圖形類,用Rectangle矩形和Circle圓形子類,求圖形的周長和面積。
能不能實現在Initail類里,隨意輸入任意數字,得到不同的矩形面積和周長,得到不同的圓形面積和周長?
我做的只能實現固定半徑和長還有寬,求得矩形面積和周長,圓形的面積和周長
2017-05-12
舉報
2017-05-20
//父類代碼。 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("您輸入的數值有誤,請重新輸入。"); ????????} ????} }這是我剛發布的問題里面的代碼,能運行,只是有點小瑕疵:一次只能計算一種圖形,下一次需要重新運行才可以。
2017-05-23
??Scanner?scan1=new??Scanner(System.in);
????int?l=scan1.nextInt();
????Scanner?scan2=new??Scanner(System.in);
這些表達的什么內容啊 ?
2017-05-13
可以啊,通過父類引用子類對象,再通過instanceof判斷它屬于哪個類,然后強制轉換,調用相應的方法得到周長和面積
2017-05-13
需要增加輸入語句,可以按照這樣的邏輯:1.選擇矩形還是圓(可以用輸入1代表矩形,輸入2代表圓);2.輸入長寬或者半徑3.輸出周長和面積