Java面向對象程序設計第7章_面向對象的幾個基本原則_第1頁
Java面向對象程序設計第7章_面向對象的幾個基本原則_第2頁
Java面向對象程序設計第7章_面向對象的幾個基本原則_第3頁
Java面向對象程序設計第7章_面向對象的幾個基本原則_第4頁
Java面向對象程序設計第7章_面向對象的幾個基本原則_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2010-1-101Java面向對象程序設計面向對象程序設計 第第7章章配合例子源代碼一起使用例子源代碼一起使用Power point 制作:耿祥義 張躍平面向對象的幾個基本原則 2010-1-102主要內容主要內容UML類圖簡介類圖簡介面向抽象原則面向抽象原則開開-閉原則閉原則多用組合少用繼承原則多用組合少用繼承原則高內聚高內聚-低耦合原則低耦合原則難點難點開開-閉原則閉原則導讀導讀 本章給出面向對象設計的幾個基本原則,了解這些基本原則,有助于知道如何使用面向對象語言編寫出易維護、易擴展和易復用的程序代碼。 2010-1-1037.1 UML類圖簡介類圖簡介 UML(Unified Mode

2、ling Language)類圖類圖(Class Diagram)屬屬于結構圖,常被用于描述一個系統(tǒng)的靜態(tài)結構。于結構圖,常被用于描述一個系統(tǒng)的靜態(tài)結構。 2010-1-1047.1.1 類的類的UMLUML圖圖 在類的在類的UML圖中,使用一圖中,使用一個長方形描述一個類的主要構個長方形描述一個類的主要構成,將長方形垂直地分為三層。成,將長方形垂直地分為三層。第第1 1層是名字層層是名字層 第第2 2層是變量層,也稱屬性層,層是變量層,也稱屬性層,列出類的成員變量及類型,格列出類的成員變量及類型,格式是式是“變量名字:類型變量名字:類型”。 第第3 3層是方法層,也稱操作層,層是方法層,也稱

3、操作層,列出類的方法及返回類型,格列出類的方法及返回類型,格式是式是“方法名字(參數(shù)列表):方法名字(參數(shù)列表):類型類型”。 2010-1-1057.1.2 接口(接口(InterfaceInterface) 表示接口的表示接口的UMLUML圖使用一個長圖使用一個長方形描述一個接口的主要構成,方形描述一個接口的主要構成,將長方形垂直地分為三層。將長方形垂直地分為三層。 頂 部 第頂 部 第 1 1 層 是 名 字 層 , 用層 是 名 字 層 , 用interface修飾名字。修飾名字。第第2 2層是常量層,列出接口中層是常量層,列出接口中的常量及類型,格式是的常量及類型,格式是“常量名常量

4、名字:類型字:類型”。 第第3 3層是方法層,也稱操作層,層是方法層,也稱操作層,列出接口中的方法及返回類型,列出接口中的方法及返回類型,格式是格式是“方法名字(參數(shù)列表):方法名字(參數(shù)列表):類型類型”。 2010-1-1067.1.3 泛化關系(泛化關系(GeneralizationGeneralization) 對于面向對象語言,對于面向對象語言,UMLUML中中所說的泛化關系就是指類的所說的泛化關系就是指類的繼承關系。繼承關系。 如果一個類是另一個類的如果一個類是另一個類的子類,那么子類,那么UMLUML通過使用一個通過使用一個實線連接兩個類的實線連接兩個類的UMLUML圖來表圖來表

5、示二者之間的繼承關系,實示二者之間的繼承關系,實線的起始端是子類的線的起始端是子類的UMLUML圖,圖,終點端是父類的終點端是父類的UMLUML圖,但終圖,但終點端使用一個空心的三角形點端使用一個空心的三角形表示實線的結束。表示實線的結束。2010-1-1077.1.4 關聯(lián)關系(關聯(lián)關系(AssociationAssociation) 如果如果A A類中成員變量是用類中成員變量是用B B類(接口)來聲明的變量,類(接口)來聲明的變量,那么那么A A和和B B的關系是關聯(lián)關系,的關系是關聯(lián)關系,稱稱A A關聯(lián)于關聯(lián)于B B。 如果如果A A關聯(lián)于關聯(lián)于B B,那么那么UMLUML通通過使用一個

6、實線連過使用一個實線連A A和和B B的的UMLUML圖,實線的起始端是圖,實線的起始端是A A的的UMLUML圖,終點端是圖,終點端是B B的的UMLUML圖,但圖,但終點端使用一個指向終點端使用一個指向B B的的UMLUML圖的方向箭頭表示實線的結圖的方向箭頭表示實線的結束。束。 2010-1-1087.1.5 依賴關系(依賴關系(DependencyDependency) 如果如果A A類中某個方法的參數(shù)用類中某個方法的參數(shù)用B B類(接口)來聲明的類(接口)來聲明的變量或某個方法返回的數(shù)據(jù)類型是變量或某個方法返回的數(shù)據(jù)類型是B B類型的,那么類型的,那么A A和和B B的關系是依賴關系

7、,稱的關系是依賴關系,稱A A依賴于依賴于B B。如果如果A A依賴于依賴于B B,那么那么UMLUML通過使用一個虛線連通過使用一個虛線連A A和和B B的的UMLUML圖,虛線的起圖,虛線的起始端是始端是A A的的UMLUML圖,終點端是圖,終點端是B B的的UMLUML圖,但終點端使用圖,但終點端使用一個指向一個指向B B的的UMLUML圖的方向箭頭表示虛線的結束。圖的方向箭頭表示虛線的結束。 2010-1-1097.1.6 實現(xiàn)關系(實現(xiàn)關系(RealizationRealization) 如果一個類實現(xiàn)如果一個類實現(xiàn)了一個接口,那么了一個接口,那么類類和接口的關系是實現(xiàn)和接口的關系是

8、實現(xiàn)關系關系,稱類實現(xiàn)接口稱類實現(xiàn)接口。UMLUML通過使用虛線連通過使用虛線連接類和它所實現(xiàn)的接接類和它所實現(xiàn)的接口,虛線起始端是類,口,虛線起始端是類,虛線的終點端是它實虛線的終點端是它實現(xiàn)的接口,但終點端現(xiàn)的接口,但終點端使用一個空心的三角使用一個空心的三角形表示虛線的結束。形表示虛線的結束。 2010-1-10107.1.7 注釋(注釋(AnnotationAnnotation) UMLUML使用注釋為類圖提供附加的說明。使用注釋為類圖提供附加的說明。 UML UML在一個帶卷角的長方形中顯示給出的注釋,在一個帶卷角的長方形中顯示給出的注釋,并使用虛線將這個帶卷角的長方形和所它所注釋的

9、并使用虛線將這個帶卷角的長方形和所它所注釋的實體連接起來。實體連接起來。 2010-1-10117.2 面向抽象原則面向抽象原則 7.2.1 抽象類和接口抽象類和接口 在這里我們提煉一些抽象類和接口二者最重要的在這里我們提煉一些抽象類和接口二者最重要的知識點,以便使讀者更加容易的理解面向抽象的原則。知識點,以便使讀者更加容易的理解面向抽象的原則。1 1 抽象(抽象(abstractabstract)類具有如下特點:類具有如下特點:抽象類中可以有抽象類中可以有abstractabstract方法,也可以有非方法,也可以有非abstractabstract方法。方法。抽象類不能用抽象類不能用new

10、new運算符創(chuàng)建對象。運算符創(chuàng)建對象。如果一個非抽象類是某個抽象類的子類,那么它必須重寫父類的如果一個非抽象類是某個抽象類的子類,那么它必須重寫父類的abstractabstract方法。方法。抽象類聲明的對象做上轉型對象。抽象類聲明的對象做上轉型對象。 A.java,B.javaA.java,B.java,Application.javaApplication.java 2 2接口(接口(interfaceinterface)具有如下特點:具有如下特點:接口中只可以有接口中只可以有publicpublic權限的權限的abstractabstract方法,不能有非方法,不能有非abstract

11、abstract方法。方法。接口由類去實現(xiàn),即一個類如果實現(xiàn)一個接口,那么它必須重寫接口中接口由類去實現(xiàn),即一個類如果實現(xiàn)一個接口,那么它必須重寫接口中的的abstractabstract方法。方法。接口回調。接口回調。 Com.java,ComImp.java,Application.javaCom.java,ComImp.java,Application.java 2010-1-10127.2.2 面向抽象面向抽象 所謂面向抽象編程,是指當設計一個類時,不所謂面向抽象編程,是指當設計一個類時,不讓該類面向具體的類,而是面向抽象類或接口,讓該類面向具體的類,而是面向抽象類或接口,即所設計類中

12、的重要數(shù)據(jù)是抽象類或接口聲明的即所設計類中的重要數(shù)據(jù)是抽象類或接口聲明的變量,而不是具體類聲明的變量。變量,而不是具體類聲明的變量。 Circle.java,Pillar.java Circle.java,Pillar.java Geometry.java,Pillar.java,Circle.java,Rectangle.java ,Application.java Geometry.java,Pillar.java,Circle.java,Rectangle.java ,Application.java 2010-1-10137.3 開開- -閉原則閉原則 所謂所謂 “ “開開- -閉原則

13、閉原則”(Open-Closed Open-Closed PrinciplePrinciple)就是讓你的設計應當對擴展開放,就是讓你的設計應當對擴展開放,對修改關閉。對修改關閉。 2010-1-10147.4 多用組合少用繼承原則多用組合少用繼承原則 方法復用的兩種最常用的技術就是方法復用的兩種最常用的技術就是類繼承和類繼承和對象組合。對象組合。 2010-1-10157.4.1 繼承與復用繼承與復用 子類繼承父類的方法作為自己的一個方法,子類繼承父類的方法作為自己的一個方法,就好像它們是在子類中直接聲明一樣,可以被子就好像它們是在子類中直接聲明一樣,可以被子類中自己聲明的任何實例方法調用。

14、也就是說,類中自己聲明的任何實例方法調用。也就是說,父類的方法可以被子類父類的方法可以被子類以繼承的方式復用以繼承的方式復用。 2010-1-10167.4.2 組合與復用組合與復用 一個類可以把對象作為自己的成員變量,如一個類可以把對象作為自己的成員變量,如果用這樣的類創(chuàng)建對象,那么該對象中就會有其果用這樣的類創(chuàng)建對象,那么該對象中就會有其它對象,也就是說該對象將其他對象作為自己的它對象,也就是說該對象將其他對象作為自己的組成部分(這就是人們常說的組成部分(這就是人們常說的Has-AHas-A),),或者說或者說該該對象是由幾個對象組合而成對象是由幾個對象組合而成。 2010-1-10177.4.3 多用組合多用組合 少用繼承少用繼承 之所以提倡多用組合,少用繼承,是因為在之所以提倡多用組合,少用繼承,是因為在許多設計中,人們希望系統(tǒng)的類之間盡量是低耦許多設計中,人們希望系統(tǒng)的類之間盡量是低耦合的關系,而不希望是強偶合關系。合的關系,而不希望是強偶合關系。 2010-1-10187.5 高內聚高內聚-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論