由于各種圖形 求面積的方式不一樣,為了使撰寫的程式能夠適應求不同形狀的面積和,當新增加一個圖形的時候,不需要修改其他類,采用面向介面的編程,其類圖如下圖所示:

根據以上類圖,你需要設計和撰寫如下類:
1.IGeometry介面類 ,里面有double getArea()介面方法
2.Rect類實作介面,有屬性 a,b,有參構造方法及對介面方法的實作
3.Circle類實作介面,有屬性r,有參構造方法及對介面方法的實作,其中PI=3.14
4.TotalArea類完成對不同形狀圖形面積求和,有屬性IGeometry[] tuxing 陣列用來存盤 不同形狀圖形物件,SetTuxing(IGeometry[] t) 給屬性tuxing賦值,double computeTotalArea()方法用來計算tuxing陣列中存放的圖形的面積和,并回傳面積和,
主類已經給出,請結合主類完成上面類的撰寫
裁判測驗程式主類:
public class Main {
public static void main(String[] args) {
IGeometry [] tuxing=new IGeometry[29]; //有29個Geometry物件
for(int i=0;i<tuxing.length;i++) { //29個Geometry物件分成兩類
if(i%2==0)
tuxing[i]=new Rect(16+i,68);
else if(i%2==1)
tuxing[i]=new Circle(10+i);
}
TotalArea computer=new TotalArea();
computer.setTuxing(tuxing);
System.out.printf("各種圖形的面積之和:\n%.2f",computer.computerTotalArea());
}
}
/* 請在這里填寫答案 請結合主類代碼,在代碼框完成IGeometry介面類,Rect類,Circle類和TotalArea類*/
輸入樣例:
在這里給出一組輸入,例如:
無
輸出樣例:
在這里給出相應的輸出,例如:
各種圖形的面積之和:
58778.36
interface IGeometry{
double getArea();
}
class Rect implements IGeometry{
double a,b;
Rect(){};
Rect(double a,double b){
this.a=a;
this.b=b;
}
@Override
public double getArea(){
return a*b;
}
}
class Circle implements IGeometry{
double r;
Circle(){};
Circle(double r){
this.r=r;
}
@Override
public double getArea(){
return 3.14*r*r;
}
}
class TotalArea{
IGeometry[] tuxing=new IGeometry[29];
void setTuxing(IGeometry[] t){
this.tuxing=t;//陣列可以直接賦值,理解不了可以用for回圈
}
double computerTotalArea(){
double sum=0;
for (int i = 0; i < this.tuxing.length; i++) {
sum=sum+this.tuxing[i].getArea();
}
return sum;
}
}
氣死了之前沒看到29和3.14往后做結果忘了這個題,臭弟弟,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/208905.html
標籤:其他
上一篇:SpringBoot啟動類的掃描注解的用法及沖突原則
下一篇:Java中的影像銳化操作
