面向對象編程(1)繼承
透切理解面向對象三大基本特性是理解面向對象五大基本原則的基礎.
三大特性是:封裝,繼承,多態
所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。封裝是面向對象的特征之一,是對象和類概念的主要特性。 簡單的說,一個類就是一個封裝了數據以及操作這些數據的代碼的邏輯實體。在一個對象內部,某些代碼或某些數據可以是私有的,不能被外界訪問。通過這種方式,對象對內部數據提供了不同級別的保護,以防止程序中無關的部分意外的改變或錯誤的使用了對象的私有部分。
所謂繼承是指可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。它支持按級分類的概念。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴展。 通過繼承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。繼承概念的實現方式有二類:實現繼承與接口繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
今天學的集成再回顧
static 特點
- static 是一個修飾符, 用於修飾成員
- static 修飾的成員被所有的對象所共享
- static 優先於對象存在, 因為 static 的成員隨著類的加載就已經存在了
靜態使用註意事項
- 靜態方法只能訪問靜態成員(包括成員變量和成員函數), 非靜態方法即可以訪問靜態成員, 也可以訪問非靜態成員.
- 靜態方法中不可以使用 this 或者 super 關鍵字.
- 主函數是靜態的, 所以只能訪問靜態方法和靜態變量.
- 靜態前面省略的是類名, 非靜態前面省略的是 this
public: 因為權限必須是最大的; static: 不需要對象, 直接用主函數所屬類名調用即可 void: 主函數沒有具體的返回值 main: 函數名, 不是關鍵字, 只是 JVM 識別的固定的名字 String[] args: 這是主函數的參數列表, 是一個數組類型的參數, 而且元素都是字符串類型 虛擬機調用主函數時, 傳遞了參數 new String[0].
- 靜態變量
當分析對象中所具備的成員變量的值都是相同的, 這時這個成員就可以被靜態修飾.
只有數據在對象中都是不同的, 那就是對象的特有數據, 必須存儲在對象中, 是非靜態的.
如果是相同的數據, 對象不需要作修改, 只需要使用即可, 不需要存儲在對象中, 定義成靜態的.
封裝就是把抽象出來的數據和對數據的操作封裝在一起,數據被保護在內部,程序的其它部分只有通過被授權的操作(成員方法),才能對數據進行操作。
JS封裝只有兩種狀態,一種是公開的,一種是私有的。
案例:
面向對象編程(1)繼承