課后練習,熱熱手
分了四個類class,用于保證內部繼承屬性的Sharp,矩形(Rectangle),圓(Circle)和調試用(initial);
Sharp:
package?com.test2;
public?abstract?class?Sharp?{
public?abstract?void?length();
public?abstract?void?aera();
}沒什么說的就是個模板;
Circle:
package?com.test2;
public?class?Circle?extends?Sharp?{
public?final?double?pi?=?3.1415926;
public?double?r;
public?void?getR(double?r){
this.r=r;
}
@Override
public?void?length()?{
//?TODO?Auto-generated?method?stub
double?length?=?2*pi*r;
System.out.println("the?Circle's?length?is?"+length);
}
@Override
public?void?aera()?{
//?TODO?Auto-generated?method?stub
double?aera?=?pi*r*r;
System.out.println("the?Circle's?aera?is?"+aera);
}
}繼承Sharp,用getR將R分開;?
Rectangle:
package?com.test2;
public?class?Rectangle?extends?Sharp?{
public?int?Long;
public?int?wide;
public?void?getLong(int?Long?,int?wide){
this.Long?=?Long;
this.wide=?wide;
}
@Override
public?void?length()?{
//?TODO?Auto-generated?method?stub
int?length?=?2*(Long+wide);
System.out.println("the?Rentangle's?length?is?"+length);
}
@Override
public?void?aera()?{
//?TODO?Auto-generated?method?stub
int?aera?=?Long*wide;
System.out.println("the?Rentangle's?area?is?"+aera);
}
}用?getLong(int,int)獲得長,寬;
initail:
package?com.test2;
import?java.util.Scanner;
public?class?Initail?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
System.out.println("enter?1?for?Rectangle?,0?for?Circle");
Scanner?scan?=?new?Scanner(System.in);
int?i?=(int)scan.nextDouble();
switch(i){
case?0:
System.out.println("please?enter?r?of?the?Circle:");
Circle?cir?=?new?Circle();
cir.getR(scan.nextDouble());
cir.length();
cir.aera();
break;
case?1:
Rectangle?rectan?=?new?Rectangle();
System.out.println("please?enter?the?long?and?wide?of?the?Rectangle:");
rectan.getLong((int)scan.nextDouble(),(int)scan.nextDouble());
rectan.length();
rectan.aera();
}
}
}常規輸出,還可以把輸出再放到一個方法里面,避免寫兩條
rectan.length();
rectan.aera();
我懶就省了...
運行結果:
2015-04-08
初學者表示樓主這段代碼很有用,非常感謝!
2015-04-16
謝謝樓主答案。
2015-03-10
可讀性好差。