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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
識別關係(關聯)— 物件如何取用其他物件的服務 關係是類別之間的連接,指的是「提供系統內的訊息往來路徑」,意即物件如何取用其它物件的服務。 關係是指類別之間在意義上的關係,具體來說分為下列情況: 類別A對類別B送出訊息(A使用B的方法)。 類別A產生類別B(A使用new B())。 類別A的屬性值是類別B或是類別B的集合(A是B的父類別或者A是B的元件) 。 類別A有著一種訊息,其參數為類別B。 關係也可以視為一種物件。例如 「某個人」對「銀行」產生存款這個關聯之後,就會產出「帳戶」。 帳戶是一種物件,本身有專屬的屬性和方法。 關係分類 一般化(繼承關係) 表示將擁有共同性質的部份抽取出來的動作,通常針對類別來進行。在一般化當中,父類別具有子類別的共同特性。 「B是A的一種」「B是A的一種特殊情況」這種關係被抽取出來就叫一般化。而能夠從A去繼承那一個函式或屬性,則叫做繼承。 組合(Composition)與聚合(Aggregation) 聚合:類別A是由類別B所構成,但是類別B可以離開類別A而獨立存在。例如,公司與員工的關係;資料夾與檔案的關係。 組合:是將聚合強化而成,在組合裡面,部分的類別是不能從整體的類別切割出來。例如,公司與部門的關係是如此。 連結 不同類別之間的1對1、1對多或多對多關係。 類別的繼承 「繼承」(Inheritance)是物件導向程式設計的重要觀念,繼承是指宣告類別繼承現存類別的部分或全部的成員變數和方法、新增額外的成員變數和方法或覆寫和隱藏繼承類別的方法或變數。 類別的繼承關係可以建立類別架構,在UML類別關係中,繼承是一般關係(Generalization)。例如:類別Student是繼承自類別Person。 類別的繼承 類別架構:繼承不只可以多個子類別繼承同一個父類別,而且可以擁有很多層的繼承。如下圖所示: Truck、Car和Motorcycle類別是兄弟類別,因為擁有相同的Vehicle父類別。 當然我們可以繼續繼承類別Car,類別SportsCar和Jeep也是類別Vehicle的子類別,不過並不是直接繼承的子類別。 類別的繼承-父類別(一般化) 在Java宣告繼承的子類別前,我們需要先有一個父類別來繼承。稱為一般化,例如:學生與老師的類別宣告如下: 類別的繼承-父類別(一般化) 父類別Person定義個人的基本資料,類別宣告如下所示: class Person { private int id; private String name; private double height; public void setID(int id) { } public void setName(String n) { } public void setHeight(double h) { } public void personInfo() { } } 類別的繼承-繼承的語法 在Java語言是使用extends關鍵字來宣告類別繼承存在的類別,其宣告語法,如下所示: class 子類別名稱 extends 父類別名稱 { …… // 額外的成員變數和方法 } 上述語法表示擴充父類別的原型宣告。 以學生Student子類別的宣告為例,其類別宣告如下所示: class Student extends Person { private int score; public Student() { } public Student(int id,String n,double h, int score) { } public void studentInfo() { } } 範例程式:.tw/~reler/object/Ch11_1_2.java 那麼老師Teacher子類別該如何宣告? 類別的繼承UML類別圖 物件建構過程 類別的繼承繼承的存取限制 子類別可以繼承父類別的所有成員變數和方法,但是在存取時仍然有一些限制,如下所示: 子類別不能存取父類別宣告成private的成員變數和方法。 父類別的建構子不屬於子類別的方法,所以子類別並不能繼承父類別的建構子,只能呼叫父類別的建構子。 類別的繼承-使用protected修飾子宣告 Java存取修飾子protected是指宣告的成員方法或變數可以在同一類別、其子類別或同一套件存取,其存取權限介於public和private之間。 Java語言的存取修飾子public、private和protected擁有不同的存取權限範圍: public:擁有全域範圍,任何類別都可以存取,包含子類別。 private:只可以在同一個類別存取,不可以在子類別存取。

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档