點擊查看:2015計算機(jī)等級考試二級Java入門教程章節(jié)匯總
點擊查看:2015計算機(jī)等級考試二級Java入門教程第十四章匯總
14.6 管理幾何圖形
當(dāng)在Sketcher中建立幾何圖形時,我們并不知道幾何圖形出現(xiàn)的順序,這完全由應(yīng)用這個程序生成草圖的人決定,因此我們需要在不知道它們是何種圖形的情況下,繪制它們并完成其他的一些操作,在這里多態(tài)性可以幫助你。
在我們想把顏色或線段樣式這些屬性定義為對象的一部分存儲他們時,我們并不希望直接地使用在java.awt_geom中定義的幾何圖形類。我們可能會考慮把它們作為我們的幾何圖形類的基類。但是,我們不能使用GeneralPath類,因為正像我們己經(jīng)看到的,它被聲明為final ,并且我們也不希望這種限制。
考慮到所有這些原因,最簡單的方式可能就是為我們的幾何圖形類定義一個公共的基類,并且在每個類中包含一個成員來存儲各種Shape對象。然后,我們可以包含一個多態(tài)的方法,返回一個Shape類型的引用,以便使用graphics2D對象的draw()方法。
我們可以從定義基類Element開始,我們將從這個類派生出特定的幾何圖形的類定義。Element類將有所有幾何圖形類共有的數(shù)據(jù)成員,在本例中我們還將放置一些希望多態(tài)地執(zhí)行的方法。我們需要做的全部工作就是確保從Element類派生出來的每個幾何圖形類都實現(xiàn)了這些方法。
這張示意圖顯示了我們將在Element基類中聲明的最初成員,F(xiàn)在只有一個Color數(shù)據(jù)成員,用來存儲幾何圖形的顏色。由于不打算用Element類定義幾何圖形,所以這里的getShape()和getlBounds()方法都設(shè)計成為abstract,而getColor()方法將在這個類中實現(xiàn)。其他的一些方法將由Element的了類實現(xiàn)。
最初,我們定義5個顯示在示意圖中表示幾何圖形的類,其中Erlement類為基類。它們提供對直線飛矩形、圓、徒于繪制曲線和文本塊對象的描述。這此類將繼承定義存Element類,掃的所有數(shù)據(jù)成員。正像我們由幾何圖形類的名稱看到的,它們都被嵌套存Element類中,Element類為基類,就好像是兒何圖形類的房屋一這樣可以避免與其他類使用的命名發(fā)生混亂,如Line, Circle這樣的類。由于沒有Element對象,所以我們將把幾何圖形類聲明為Element類的靜態(tài)成員。
相關(guān)推薦:
2015計算機(jī)等級考試二級Java入門教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |