识别关系(关联)—物件如何取用其他物件的服务

识别关系(关联)—物件如何取用其他物件的服务

ID:19870836

大小:501.00 KB

页数:54页

时间:2018-10-07

识别关系(关联)—物件如何取用其他物件的服务_第1页
识别关系(关联)—物件如何取用其他物件的服务_第2页
识别关系(关联)—物件如何取用其他物件的服务_第3页
识别关系(关联)—物件如何取用其他物件的服务_第4页
识别关系(关联)—物件如何取用其他物件的服务_第5页
资源描述:

《识别关系(关联)—物件如何取用其他物件的服务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、識別關係(關聯)—物件如何取用其他物件的服務關係是類別之間的連接,指的是「提供系統內的訊息往來路徑」,意即物件如何取用其它物件的服務。關係是指類別之間在意義上的關係,具體來說分為下列情況:類別A對類別B送出訊息(A使用B的方法)。類別A產生類別B(A使用newB())。類別A的屬性值是類別B或是類別B的集合(A是B的父類別或者A是B的元件)。類別A有著一種訊息,其參數為類別B。關係也可以視為一種物件。例如「某個人」對「銀行」產生存款這個關聯之後,就會產出「帳戶」。帳戶是一種物件,本身有專屬的屬性和方法。1關係分類一般化(繼承關係

2、)表示將擁有共同性質的部份抽取出來的動作,通常針對類別來進行。在一般化當中,父類別具有子類別的共同特性。「B是A的一種」「B是A的一種特殊情況」這種關係被抽取出來就叫一般化。而能夠從A去繼承那一個函式或屬性,則叫做繼承。組合(Composition)與聚合(Aggregation)聚合:類別A是由類別B所構成,但是類別B可以離開類別A而獨立存在。例如,公司與員工的關係;資料夾與檔案的關係。組合:是將聚合強化而成,在組合裡面,部分的類別是不能從整體的類別切割出來。例如,公司與部門的關係是如此。連結不同類別之間的1對1、1對多或多對

3、多關係。2類別的繼承「繼承」(Inheritance)是物件導向程式設計的重要觀念,繼承是指宣告類別繼承現存類別的部分或全部的成員變數和方法、新增額外的成員變數和方法或覆寫和隱藏繼承類別的方法或變數。類別的繼承關係可以建立類別架構,在UML類別關係中,繼承是一般關係(Generalization)。例如:類別Student是繼承自類別Person。3類別的繼承類別架構:繼承不只可以多個子類別繼承同一個父類別,而且可以擁有很多層的繼承。如下圖所示:Truck、Car和Motorcycle類別是兄弟類別,因為擁有相同的Vehicle

4、父類別。當然我們可以繼續繼承類別Car,類別SportsCar和Jeep也是類別Vehicle的子類別,不過並不是直接繼承的子類別。4類別的繼承-父類別(一般化)在Java宣告繼承的子類別前,我們需要先有一個父類別來繼承。稱為一般化,例如:學生與老師的類別宣告如下:ClassStudent{privateintscore;privateintid;privateStringname;privatedoubleheight;publicStudent(){}publicStudent(intid,Stringn,doubleh,i

5、ntscore){}publicvoidstudentInfo(){}publicvoidsetID(intid){}publicvoidsetName(Stringn){}publicvoidsetHeight(doubleh){}}ClassTeacher{privateintteacherNO;privateintid;privateStringname;privatedoubleheight;publicTeacher(){}publicTeacher(intid,Stringn,doubleh){}publicvoid

6、teacherInfo(){}publicvoidsetID(intid){}publicvoidsetName(Stringn){}publicvoidsetHeight(doubleh){}}5類別的繼承-父類別(一般化)父類別Person定義個人的基本資料,類別宣告如下所示:classPerson{privateintid;privateStringname;privatedoubleheight;publicvoidsetID(intid){}publicvoidsetName(Stringn){}publicvoids

7、etHeight(doubleh){}publicvoidpersonInfo(){}}6類別的繼承-繼承的語法在Java語言是使用extends關鍵字來宣告類別繼承存在的類別,其宣告語法,如下所示:class子類別名稱extends父類別名稱{……//額外的成員變數和方法}上述語法表示擴充父類別的原型宣告。以學生Student子類別的宣告為例,其類別宣告如下所示:classStudentextendsPerson{privateintscore;publicStudent(){}publicStudent(intid,Stri

8、ngn,doubleh,intscore){}publicvoidstudentInfo(){}}範例程式:http://mail.tajen.edu.tw/~reler/object/Ch11_1_2.java那麼老師Teacher子類別該如何宣告?7類別的繼

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。