問題詳情

三、請以 Java 或 C++撰寫實做一簡單幾何圖形類別系統(class hierarchy),可以表示圓形、方形與矩形。圓形、方形與矩形之類別名稱分別為 Circle、Square 與 Rectangle。三者的共同祖先類別 Shape 是一個抽象類別,代表所有可能的幾何圖形。Shape 下的兩個具體子類別分別為 Circle 及 Square,Square 下則有 Rectangle 類別。我們希望每一幾何物件均能提供以下方法:1.透過 getX(),getY()可得到幾何中心點的 X 與 Y 座標。2.透過 getArea()可得到圖形面積。  3.透過 getPerimeter()可得到圖形周長。  4.透過 translate(double x, double y):void 可對圖形進行位移。5.透過 scale(double f):void 可對圖形進行放大或縮小。  6.透過 toString():String 可得到該圖形的形狀種類、中心與長寬或半徑的文字資訊。其他類別須額外提供以下方法:  7. Circle 物件須提供 getRadius():double,可以取得物件半徑。  8.Square 物件須提供 getSide():double,可以取得邊長。9. Rectangle 物件須提供 getHeight(),getWidth():double,可以取得矩形的高與寬。每一類別僅需提供一建構式(constructor),其參數格式要求如下:  10. a. Shape(x,y),b. Rectangle(x,y,w,h),c. Square(x,y,s),d.Circle(x,y,r)。所有參數的型態(type)均為 double,其中 x 與 y 為幾何圖形中心的 X 與 Y 座標,r 為圓形半徑,w 與 h 為矩形的寬與高而 s 則是方形的邊長。請根據以上要求,以 Java 實做此四類別(class)。除須符合上述要求之外,實做時尚須遵循一般物件導向與軟體設計原則,尚須避免程式碼重複、產生無用欄位,以及資訊隱藏不全等缺點。(20 分)

參考答案

答案:C
難度:適中0.56802
統計:A(15),B(22),C(1357),D(719),E(0)

內容推薦

內容推薦