版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象,封裝,方法封裝邏輯,類封裝數據和方法。通過訪問控制機制,限制對數據和方法的訪問。 成員變量都聲明為私有的。 對成員變量的訪問都必須通過本類的方法。比如get/set方法對。,繼承,類重用的兩種方式:繼承和組合。 組合:在一個類中包含另外一個類的對象的引用。,繼承,抽取各個子類的共同特性描述為一個父類。是實現(xiàn)一般特殊關系的一種機制。 一般特殊關系:一個“特殊”類除了具有“一般”類的屬性和方法之外,還具有自己特有的屬性和方法。 繼承的特征:從父類的角度叫做派生或擴展,從子類的角度叫繼承。構造器和私有的成員不能被繼承。子類和父類不同包的情況下,只能繼承public和protected修飾的
2、成員。,繼承,單一繼承:在Java語言中,一個子類只能有一個直接父類,而一個父類可以有多個直接子類。 單根結構:在Java語言中,Object類是所有類的父類。,繼承,對父類的兩種擴展方式:增加屬性和方法;覆蓋父類方法。 覆蓋:在子類中定義一個與父類方法具有相同方法簽名的方法,以實現(xiàn)對父類方法的改造。,覆蓋,方法名和形參列表相同 返回值類型相同或子類方法的返回值類型是父類方法返回值類型的子類型。 訪問權限不能比被覆蓋方法更嚴格。 不能拋出比被覆蓋方法更多的異常。 靜態(tài)方法只能被靜態(tài)方法覆蓋,實例方法只能被實例方法覆蓋。,成員變量隱藏,在子類中定義與父類成員變量同名的成員變量。從而使父類該成員變
3、量不能被子類繼承。 與方法覆蓋的區(qū)別:在父類或子類中直接使用變量名訪問的一定是父類或子類的成員變量,而方法覆蓋則不一定。,動態(tài)綁定,在程序運行期間,JVM根據對象的類型不同,綁定不同的方法。,super,訪問父類的被覆蓋的方法和被隱藏的成員變量。 訪問父類的構造器,且放在構造器的第一行代碼。 不能同時訪問本類重載的構造器和父類構造器。,this,代表當前對象的引用。 實例方法中隱式的包含一個this。 通過this訪問本類重載的構造器,且放在構造器的第一行。,static,靜態(tài)成員只于類有關與對象無關。 被static修飾的成員稱為靜態(tài)成員。 可以用來修飾成員變量和非抽象方法。 在本類中直接通
4、過方法名和變量名來訪問。在其它類中通過類名來訪問。,單子模式,只產生該類的一個對象。,final,具有”不可改變”的含義??梢孕揎椃浅橄箢?,非抽象方法,屬性。 final修飾的實例成員變量必須顯式初始化,在定義或者構造器中。 final修飾的靜態(tài)成員變量必須在定義時顯式初始化。,System.out.println,out:是System類的PrintStream類型的靜態(tài)成員變量。 println:是PrintStream的一個實例方法。 toString:如果需要打印輸出自定義類的對象,則在自定義類中需要覆蓋toString方法。,抽象,在父類或接口中盡量描述各個子類或實現(xiàn)類需要實現(xiàn)的功能
5、,而不具體實現(xiàn)。將實現(xiàn)交由各個子類或實現(xiàn)類,根據自身的情況去實現(xiàn)。增強程序的靈活性和可維護性。,abstract,可以用來修飾類和方法,分別稱為抽象類和抽象方法。 抽象類不能直接實例化。 抽象方法只有方法定義,沒有方法體。 抽象類中也有構造器,以便子類構造器調用。,模版方法模式,在抽象父類中定義一個操作中的算法的骨架,而將一些步驟延遲到子類中實現(xiàn)。代表這些具體邏輯步驟的方法稱為基本方法,代表算法骨架的方法稱為模版方法。 角色:抽象模版角色,具體模版角色。,抽象模版角色,定義一個或多個抽象操作,以便讓子類實現(xiàn)。這些抽象操作叫基本方法,它們是整個骨架操作的組成部分。 定義并實現(xiàn)了一個模版方法。它實
6、現(xiàn)了整體操作的骨架,而該整體操作由一個或多個抽象方法組成。這些抽象方法的具體邏輯由子類實現(xiàn)。該整體操作也有可能調用一些具體方法。,具體模版角色,實現(xiàn)抽象父類所定義的一個或多個抽象方法。 每個抽象模版可以有任意多個具體模版角色與之對應。每個具體模版角色都可以給出這些抽象方法的不同實現(xiàn),從而使得模版方法的實現(xiàn)各不同。,開-閉原則,一個軟件實體應該對擴展開放,修改關閉。 通過擴展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求。使變化中的軟件有一定的適應性和靈活性。 已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。,接口,有兩種含義 第一,概念
7、性的,是指系統(tǒng)中向外界提供的所有服務。類的所有能被外界訪問的方法稱為類的接口。 第二,狹義的,就是interface關鍵字定義的接口,也稱為接口類型。,接口,是方法定義和常量定義的集合,與抽象類共同組成系統(tǒng)的抽象層。 接口中的變量默認是public static final修飾的,必須顯式初始化。 方法默認是public abstract修飾的。 接口可以繼承多個接口。 類可以實現(xiàn)多個接口。 接口不可實例化,沒有構造器。 不可創(chuàng)建接口對象,但是可以定義接口類型的引用,持有任何實現(xiàn)類的對象。,接口的合并,子接口繼承多個父接口。 實現(xiàn)類實現(xiàn)多個接口。,名字沖突,在接口合并時,多個父接口中有同名的常
8、量和具有相同方法簽名的方法。 如果有同名的常量,在實現(xiàn)類中通過接口名.常量名,來訪問不同接口中定義的常量。 如果有相同的方法簽名而返回值類型不同,則編譯報錯。 如果方法簽名和返回值類型相同,在實現(xiàn)類中只需實現(xiàn)一次。,引用類型轉換,如果把引用變量轉換為父類類型、接口類型或父接口類型,則稱為向上轉型。又稱為隱式轉換。 如果把引用變量轉換為子類類型、子接口類型或實現(xiàn)類類型,則稱為向下轉型。又稱為強制轉換。 向上轉型總是安全的,向下轉型則不一定。,引用類型轉換,對于引用,Java編譯器按照它所聲明的類型來處理。 Java編譯器只允許一顆樹上的同一個樹枝上的類型之間進行相互轉換。,綁定,將方法的調用連接
9、到方法本身稱為綁定。 靜態(tài)綁定:綁定發(fā)生在編譯期,稱為靜態(tài)綁定。 動態(tài)綁定:程序運行時,根據對象的類型來決定該綁定哪個方法,稱為動態(tài)綁定。 Java語言實現(xiàn)了動態(tài)綁定。,多態(tài),分為靜態(tài)多態(tài)和動態(tài)多態(tài) 靜態(tài)多態(tài):在編譯時,由Java編譯器根據參數列表的不同,來決定綁定相應的重載的方法。 動態(tài)多態(tài):在程序運行期間,由JVM根據引用變量實際引用的對象,來決定綁定相應的方法。,繼承的利弊,利: 容易進行新的實現(xiàn),因為大多數可以繼承而來。 易于修改或擴展那么被重用的實現(xiàn)。,繼承的利弊,弊: 破壞了封裝性。 當父類的實現(xiàn)更改時,子類也不得不更改。 從父類繼承來的實現(xiàn),在運行時不可改變。,組合的利弊,利: 封裝性好。 通過對象的引用,在運行時動態(tài)改變。 實現(xiàn)上的依賴性比較小。 每個類只專注于一項服務。 弊: 系統(tǒng)中的對象太多。,使用原則,盡量使用組合,慎用繼承。 繼承的層次不可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院醫(yī)??颇甓裙ぷ骺偨Y
- 退役軍人服務保障體系標準化建設
- 求職者面試技巧全套教程
- 一般工貿行業(yè)新員工三級安全培訓考試試題及答案
- 建設工程施工合同糾紛要素式起訴狀模板修改無約束
- 不用熬夜寫!建設工程施工合同糾紛要素式起訴狀模板現(xiàn)成用
- 保險講師培訓
- 環(huán)境友好催化技術課件
- 調色年終總結和配料(3篇)
- 公務員法執(zhí)行情況自查報告
- 枕骨骨折的護理課件
- TCEC電力行業(yè)數據分類分級規(guī)范-2024
- 駱駝的養(yǎng)殖技術與常見病防治
- GB/T 26951-2025焊縫無損檢測磁粉檢測
- 2025及未來5-10年高壓管匯項目投資價值市場數據分析報告
- 《國家十五五規(guī)劃綱要》全文
- 腹部手術圍手術期疼痛管理指南(2025版)課件
- 2025年衛(wèi)生人才評價考試(臨床醫(yī)學工程技術中級)歷年參考題庫含答案
- 呼吸康復科普脫口秀
- 2025年《思想道德與法治》期末考試題庫及答案
- 2025初一英語閱讀理解100篇
評論
0/150
提交評論