面向對象三

1、代碼塊的概述和分類
1. 代碼塊概述
a. 在Java中,使用{} 括起來的代碼被稱爲代碼塊。
2. 代碼塊分類
a. 根據其位置和聲明的不一樣,能夠分爲局部代碼塊、構造代碼塊、靜態代碼塊、同步代碼塊。
3. 常見代碼塊的應用
a. 局部代碼塊
i. 在方法中出現,限定變量的生命週期,及早釋放,提升內存利用率。
b. 構造代碼塊(初始化塊)
i. 在類中方法外出現;多個構造方法中相同的代碼存放在一塊兒,每次調用構造都執行,而且在構造方法前執行。
c. 靜態代碼塊
i. 在類中方法外出現;加了static修飾。
ii. 在類中方法外出現,並加上static修飾;用於給類進行初始化,在加載的時候就執行,而且只執行一次。
iii. 通常用於加載驅動。java

2、繼承(繼承關鍵字extends)
1. 繼承:讓類與類之間產生關係,子父類關係。
2. 繼承的好處
a. 提升代碼的複用性
b. 提升代碼的維護性
c. 讓類與類之間產生關係,是多態的前提。
3. 繼承的弊端:
a. 類的耦合性加強了。this

開發的原則:高內聚、低耦合
耦合:類與類的關係
內聚:就是本身完成某件事情的能力。
4. java中類的繼承特色
    a. java中只支持單繼承,不支持多繼承。
    b. java支持多層繼承(繼承體系)
5. 繼承的注意事項
    a. 子類只能繼承父類全部非私有的成員(成員方法和成員變量)
    b. 子類不能繼承父類的構造方法,可是能夠經過super關鍵字去訪問父類的構造方法。
    c. 不要爲了部分功能而去繼承。
6. 何時使用繼承:
    a. 繼承體現的是一種關係:「is a」
    b. 採用假設法:
    若是有兩個類A、B,只有他們符合A是B的一種,或者B是A的一種,就能夠考慮使用繼承。

3、this和super的區別:
1. this和super表明什麼
a. this:表明當前對象的引用,誰調用就表明誰。
b. super:表明當前對象父類的引用。
2. this和super的區別:
a. 調用成員變量
b. this.成員變量 調用本類的成員變量,也能夠調用父類的成員變量。
i. super.成員變量:調用父類的成員變量。
c. 調用構造方法:
i. this(…) 調用本類的構造方法
ii. super(…) 調用父類的構造方法
d. 調用成員方法:
i. this.成員方法 調用本類的成員方法,也能夠調用弗雷德成員方法。
ii. super.成員方法 調用弗雷德成員方法。
4、方法重寫概述及其應用
1. 方法重寫:子父類出現瞭如出一轍的方法(返回值類型能夠是子父類)
2. 方法重寫的應用:當子類須要父類的功能,而功能主體子類有本身特有內容時,能夠重寫父類的方法體,這樣,即沿線了父類的功能,又定義了子類特有的內容。
3. 方法重寫注意事項:
a. 父類中私有方法不能被重寫
i. 由於父類私有方法子類根本沒法繼承。
b. 子類重寫父類方法時,訪問權限不能更低。
i. 最好一致。
c. 父類靜態方法,子類也必須經過靜態方法進行重寫(靜態只能覆蓋靜態。其實這種算不上重寫)
d. 子類重寫父類方法的時候,最好聲明如出一轍。
5、final概述
1. final修飾特色:
a. 修飾類:類不能被繼承
b. 修飾變量:變量就變成了常量,只能被賦值一次。
c. 修飾方法:方法不能被重寫。
d. final修飾變量的時候,通常和public static 一塊兒修飾變量使用。
2. 修飾變量注意事項:
a. 修飾基本類型:是值不能被改變
b. 修飾引用類型:引用地址不能被改變,但對象中的屬性值能夠改變。
c. final修飾變量的初始化時機:
i. 顯示初始化:eg:final int num=10;
ii. 在對象構造完畢以前
eg:
code

相關文章
相關標籤/搜索