面向對象“四大特性 ” :
封裝、繼承、多態、“抽象 ”
封裝
功能內聚 降低耦合度
以什麼樣的方式暴露哪些信息
對屬性、數據、部分內部敏感行爲實現隱藏
設計模式七大原則之一的迪米特法則就是對於封裝的具體要求,即 A 模塊使用
B 模塊的某個接口行爲,對 B 模塊中除此行爲之外的其他信息知道得儘可能少。
在不知道什麼樣的訪問控制權限合適的時候,優先推薦使用 private控制級別。
繼承
複用性
基礎模塊可以被直接複用、間接複用或增強複用
繼承是 is-a 關係,那麼如何衡量當前的繼承關係是否滿足 is-a 關係呢?
判斷標準即是否符合里氏代換原則( Liskov Substitution Principle, LSP )。 LSP 是指
任何父類能夠出現的地方,子類都能夠出現
繼承濫用的危害性 :
1方法污染
方法污染是指父類具備的行爲 , 通過繼承傳遞給子類,子類並不具備執行此行爲
的能力 ,比如鳥會飛,駝鳥繼承鳥 , 發現飛不了,這就是方法污染。
2方法爆炸
指繼承樹不斷擴大,底層類擁有的方
法雖然都能夠執行,但是由於方法衆多,其中部分方法並非與當前類的功能定位相關,
提倡組合優先原則來擴展類的能力,即優先採用組合或聚合的類關係來複用其他類的能力,而不是繼承。
多態
擴展性
override” 和 、overload'’ ,
“override” 譯成 “覆寫 ”, 是子類實現接口 , 或者繼承父類時 , 保持方法簽名完全相同,實現不同的方法體
“overload”譯成“重載”,方法名稱是相同的,但是參數類型或參數個數是不相同的
多態專指覆寫
抽象
歸納和演繹。
找到屬性和行爲的共性
歸納
從具體到本質,從個性到共性
需要抽象出對象的屬性和行爲的共性,難度大於演繹
演繹
從本質到具體,從共性到個性,逐步形象化
淺拷貝只複製當前對象的所有基本數據類型,以及相應的引用變量 與原對象共享 引用變量所指向的堆中對象
深拷貝: 與母對象不存在共享的實例變量
實現深拷貝 需要重寫 clone方法
面向對象編程思想把所有的有形或無形的事物都看作對象,並給對象賦予相應的屬性和行爲 , 建立對象之間的聯繫
JRE( Java Runtime Environment ) 即 Java運行環境 , 包括 JVM、核心類庫、核
心配置工具等。其中 JVM( Java Virtual Machine )即 Java 虛擬機 , 它 是 整個 Java 體
系的底層支撐平臺, 把源文件編譯成平臺無關的字節碼文件, 屏蔽了 Javaj原代碼與
具體平臺相關的信息 , 所以 Java 源代碼不需要額外修改即可跨平臺 運 行。