【正文】
public class Point //Point類定義 { private int x,y。} //獲取綠色 public int getBlue(){return blue。 } public int getRed(){return red。 if (blue0||blue255) =0。 if (green0||green255) =0。 } public void setColor(int red,int green,int blue) //設(shè)置顏色 { if (red0||red255) =0。 if (blue0||blue255) =0。 if (green0||green255) =0。} //構(gòu)造方法 public Color(int red,int green,int blue) //構(gòu)造方法 { if (red0||red255) =0。green=0。 //綠色 private int blue。 C o lo r in t re d in t g re e n in t b lu e + v o id se tC o lo r() + in t g e tR e d () + in t g e tG re e n () + in t g e tB lu e () + S trin g t o S tr in g () Po in t in t x in t y + v o id se t P o i n t() + in t g e tX () + in t g e tY () + S trin g t o S tr in g () Color類定義 public class Color //Color類定義 { private int red。矩 形是一種圖元,它還有長( long)、寬( width)兩個屬 性,正方形是一種特殊的矩形,它的特殊性在于長和寬相 等。 public JavaApplet extends Applet { public void paint(Graphics g) { (This is a Applet.,50,50)。 類層次結(jié)構(gòu)舉例 自然對象 植物 動物 礦物 爬行動物 哺乳動物 兩棲動物 昆蟲 狗 奶牛 猴子 類的繼承 定義子類 子類是通過在定義類時利用關(guān)鍵字 extends指出 父類實現(xiàn)的,其語法格式為: [Modifier] class ClassName extends SuperClassName { //ClassBody } Modifier 是類定義修飾符 , ClassName 是子類的名稱 , extends是指出父類的關(guān)鍵字,SuperClassName是直接父類的名稱, ClassBody是所有子類成員的定義。所謂多態(tài)是指不同的類對象收到同一個 消息可以產(chǎn)生完全不同的響應(yīng)效果的現(xiàn)象。不僅如此, Java還提供了抽象類和接口,以便使類層次得到更高級別的抽象。 類的繼承具有傳遞性,即子類還可以再派生子類,最終形成一個類層次結(jié)構(gòu)。第 4章 繼承與多態(tài) 繼承與多態(tài)的實現(xiàn)技術(shù) 繼承 繼承是指一個類的定義可以基于另外一個已經(jīng) 存在的類,即子類基于父類,從而實現(xiàn)父類代碼的 重用。兩個類之間的這種繼承關(guān)系可以用 UML圖形 符號表示 : 父類 子類 父類與子類相比較,涵蓋了更加共性的內(nèi)容,更加具有一般性,而子類所添加的內(nèi)容更加具有個性,是一般性之外的特殊內(nèi)容,因此,這種類的繼承關(guān)系充分地反映了類之間的 “ 一般 特殊 ” 關(guān)系。 在 Java語言中,通過定義子類支持繼承性。 多態(tài)性 多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計的又一個核心概 念,它有助于增加軟件系統(tǒng)的可擴展性、自然性和 可維護性。利用多 態(tài)機制,用戶可以發(fā)送一個通用的消息給各個類對 象,而實現(xiàn)細節(jié)由接收對象自行決定,這樣,同一 個消息可能會導(dǎo)致調(diào)用不同的方法。 最簡單的 Applet應(yīng)用程序的類定義 import .*。 } } 一個有關(guān)幾何圖元處理的例子 任何一個幾何圖元都有顏色和原點這兩個基本屬性。這三個類之間的關(guān)系可以用圖所示的 UML類圖描述 : Shap Rectangle Square Shape類 設(shè)定兩個屬性:一個是幾何圖元的顏色因此,我們要定義一個 Color類 另一個是幾何圖元的原點,由 x和 y惟一確定,為此,需要定義一個 Point類 。 //紅色 private int green。 //藍色 public Color(){red=0。blue=0。 else =red。 else =green。 else =blue。 else =red。 else =green。 else =blue。} //獲取紅色 public int getGreen(){return green。} //獲取藍色 public String toString() //將顏色信息轉(zhuǎn)換成字符串描述形式 { return Red: +red+ ,Green: +green+ ,Blue: +blue。 //x和 y坐標點 public Point(){x=0。} //構(gòu)造方法 public Point(int x,int y) { =x。} //構(gòu)造方法 public Point(Point point) //構(gòu)造方法 { x=。 } public int getX(){return x。} //獲取 y public void setPoint(int x,int y) //設(shè)置坐標點 { =x0?0:x。 } public String toString() //將坐標信息轉(zhuǎn)換成字符串描述形式 { return (+x+,+y+)。 //顏色屬性 private Point origin。 origin=new Point()。 origin=o。 origin=o。} //獲取顏色 public Point getOrigin(){return origin。 } } Shape類由 Color和 Point類組合而成,屬于 “ 整體 部分 ” 關(guān)系,若用 UML類圖描述應(yīng)如圖 : S h a p