問題
-計算多種圖形的面積,並比較各種圖形面積的最大值
-使用抽象類及其子類的方式實現本案例
-本案例以圓形和正方形為例
註:正方形的面積公式為:0.0625*c*c。圓形的面積公式為:0.0796*c*c,其中c表示圖形的周長
方案
分析問題中的描述,可以得出如下解決方案
-定義兩個類Square和Circle,分別表示正方形和圓形
-正方形和圓形都有周長,我們可以使用c屬性來表示,要計算正方形和圓形的面積,我們定義area方法來實現,即,分別在Square類和Circle類中定義c屬性和area方法,並根據各自圖形的公式計算對應面積。
-案例問題中要求計算各種圖形面積,並找出最大值。在此,我們需要找到一種類型。該類型為Square類和Circle類的父類,使用該類型的數組來存儲所有圖形。因此定義Shape類,該類為Square何Circle類的父類,並將Square和Circle類的共有屬性放入Shape類中定義。
-又因為父類(Shape)的引用不能直接調用子類的方法(area方法),因此,將area方法抽取到父類Shape中。在父類Shape中,不知道具體是哪種圖形,因此area方法不知如何去實現,在此,將該方法定義為抽象方法,那麼Shape類也要定義為抽象類。這樣也形成了子類重寫父類的area方法。
-最後我們可以定義如下方法來實現求面積最大值。

以上方法中,參數shapes為Shap[]數組類型,該參數可以存儲正方形、圓形、或其他圖形。
步驟
步驟一:定義類Square和Circle
定義兩個類,分別表示正方形和圓形。

步驟二:定義c屬性和area方法
分別在兩個類當中定義c屬性和area方法,並根據各自圖形的公式計算對應的面積

步驟三:定義父類Shape並抽取屬性和方法
定義父類Shape,將子類中共有屬性c和area方法抽取到父類中,並重構子類

步驟四:計算各種圖形面積最大值
新建類TestShape,在該類中創建方法maxArea方法,該方法實現計算多種圖形面積最大值(見下圖)
步驟五:測試
在TestShape類中,測試maxArea方法能否計算出各種圖形面積的最大值。

今天的程序就寫到這個地方,明天介紹抽象類和接口的實例。
知識無限,能力有限。小編在文章編輯過程中難免出現不盡人意的地方,歡迎大家批評指正,小編也將不斷積累完善自己,讓我們共同進步。