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

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

課后練習的問題。求指導!

我不知道怎么把數據帶進去...


1. 這個是父類的abstract。

package com.imooc;


public abstract class Shape {

? ? public abstract void perimeter(); ? ?

? ? public abstract void area();

}

2. 然后是子類的Rectangle。嘗試了一下失敗了。

package com.imooc;


public class Rectangle extends Shape {


Rectangle p1 = new Rectangle();

private int periSum(){

int length = 10;

int width = 5;

int pSum = (length + width) *2;

return pSum;

}


@Override

public void perimeter() {

// TODO Auto-generated method stub

? ? ?System.out.println("圓形的周長是:"+ p1.periSum());

}



@Override

public void area() {

// TODO Auto-generated method stub

? ? ?System.out.println("圓形的面積是:");

}


}

3. 接著是子類的Circle。

package com.imooc;


public class Circle extends Shape {


@Override

public void perimeter() {

// TODO Auto-generated method stub

? ? ? ?System.out.println("長方形的周長是:");

}


@Override

public void area() {

// TODO Auto-generated method stub

? ? ?System.out.println("長方形的面積是:");

}


}

4. 最后是Initial。

package com.imooc;


public class Initial {


public static void main(String[] args) {

// TODO Auto-generated method stub

? ? //計算周長

Shape per1 = new Rectangle();

? ? Shape per2 = new Circle();

? ? //求長方形的周長

? ? per1.perimeter();

? ? //求圓的周長

? ? per2.perimeter();

? ? //計算面積

? ? Shape ar1 = new Rectangle();

? ? Shape ar2 = new Circle();

? ? ar1.area();

? ? ar2.area();

}


}




正在回答

1 回答

你在

public?class?Rectangle?extends?Shape?{

Rectangle?p1?=?new?Rectangle();
private?int?periSum(){
int?length?=?10;
int?width?=?5;
int?pSum?=?(length?+?width)?*2;
return?pSum;
}

建立了對象,然后又在initial里建立了對象,這樣使用有問題

public?void?perimeter()?{
//?TODO?Auto-generated?method?stub
?????System.out.println("圓形的周長是:"+?p1.periSum());
}

你在initial中建立的對象沒有去調用perimeter方法,因為你這個方法是使用p1這個對象調用periSum,建議你把Rectangel中的Rectangle p1 = new Rectangle();注釋掉,然后把p1改成this,或者直接使用periSum這個方法。

你這里的主要問題就是你在initial中建立的對象,沒有真正的用來調用periSum這個方法,實際調用這個方法的。另外還有一個問題,你在方法內部建立的變量并不是成員變量,這個變量并不會被你建立的方法是用。

所以你應該把int length,int width寫在方法體外面,讓他成為類成員變量。建議好好看看有關java類的內容。本人也是菜鳥,如有錯誤請見諒。

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

ilemon 提問者

好暈。。。。。雖然照你說的改對了。。。但是。。。后面你在說什么0.0
2015-05-19 回復 有任何疑惑可以回復我~
#2

apprentice1104 回復 ilemon 提問者

主要就是你對class的使用和理解不太熟悉,如果我說的是對的那么能麻煩你給個最優答案然后結貼嗎?
2015-05-19 回復 有任何疑惑可以回復我~
#3

ilemon 提問者 回復 apprentice1104

可是還是不明白...
2015-05-19 回復 有任何疑惑可以回復我~
#4

apprentice1104 回復 ilemon 提問者

不明白就看看有關class的內容吧,你不能指望發這個帖子就弄清楚所有的知識,而且我覺得我已經講的很詳細了。
2015-05-19 回復 有任何疑惑可以回復我~
#5

ilemon 提問者

非常感謝!
2015-05-19 回復 有任何疑惑可以回復我~
查看2條回復

舉報

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

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

進入課程

課后練習的問題。求指導!

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

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

幫助反饋 APP下載

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

公眾號

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