《java核心技術》(原書第七版)讀書筆記之第五章

2021-06-21 06:02:48 字數 1455 閱讀 8460

有陣子沒寫部落格了,這一章看了很久,倒不是說內容很難,只是中間有很多事打斷了,以後要爭取每天都有記錄,每天進步一點,加油!

知識點總結:

(1)關鍵字extends表示繼承。已存在的類:超類/基類/父類,新類:子類/派生類/孩子類。為了呼叫超類中的方法,使用super關鍵字。

(2)關於super與this:super不是乙個物件的引用,不能將super賦給另乙個物件變數,他只是乙個指示編譯器呼叫超類方法的特有關鍵字。

(3)使用super呼叫建構函式的語句必須是子類建構函式的第一條語句。

(4)super的兩個用途:一是呼叫超類的方法;二是呼叫超類的建構函式。

this的兩個用途:一是引用隱式引數;二是呼叫該類其他的建構函式。

(5)乙個物件變數可以引用多種實際型別的現象稱為多型,在執行時能夠自動的選擇呼叫適當的方法的現象稱為動態繫結。

動態繫結有乙個非常重要的特性:無需對現存的**進行修改,就可以對程式進行擴充套件。

(6) 如果方法是private,static,final或者建構函式,那麼編譯器將可以準確的知道該呼叫哪個方法,這種呼叫方式稱為靜態繫結。

(7)在覆蓋(override)乙個方法的時候,子類方法不能低於超類方法的可見性(許可權),特別是,如果超類方法是public,子類方法一定要是public。

(8)如果將乙個類宣告為final,只有其中的方法自動變成final,而不包括域。

(9)強制型別轉換:1)只能在繼承層次內進行型別轉換;2)在將超類轉換成子類之前,應該用instanceof進行檢查。(一般情況下,盡量少用)

(10)有關抽象類和protected關鍵字可以參見我的另一篇博文。

(11)object類中equals方法用於檢測乙個物件是否等於另乙個物件。在object類中,這個方法將判斷兩個物件是否具有相同的引用。具體關於equals方法參見另一篇博文。

(12)hashcode返回每個物件的儲存位址。如果重新定義equals方法,就必須重新定義hashcode方法。

(13)強烈建議:為自己編寫的每乙個類增加tostring方法!!!在自己設計的類中,要重寫equals和tostring方法。

(14)利用下面的方法可以輕鬆擴充套件陣列,也可以方便的訪問陣列元素:

首先,建立乙個陣列,並新增所以元素。

arraylistlist = new arraylist();

while(...) {

x = ...;

list.add(x);

x[ ] a = new x [ list.size ()];

list.toarray(a);

(15) 關於反射,請參見我的另一篇博文。

(16)在比較兩個列舉型別的值時,永遠不需要呼叫equals方法,而直接使用「= =」就可以了。

好了關於繼承這章就總結這些,上面只是一些知識點,至於細節還需要看書上具體講的部分,關於反射這塊看書的時候不是很理解,等後面用到再說吧,明天開始第六章!

C核心技術手冊(七)

通用字元名 c也支援通用字元名來使用擴充套件字符集,使用通用字元名,你可以指定任何擴充套件字元,它的 unicode 值如下形式 u x 或者 u xx 其中,x 或 xx為16 進製的unicode 指標符號,使用小寫字母 u做為字首,後面為四個十六進製制數字,或者大寫字母 u,後面為 8個十六進...

Java核心技術 筆記6 7

1 repeat 10 0 system.out.println hello world 要接受此lambda表示式,需要提供函式式介面 public static void repeat int n runnable action action.run 會執行lambda表示式主體 2.不止乙個函...

Java核心技術 筆記6 8

1.區域性內部類中,若只建立乙個類的物件 只用了一次 就不用命名了,即 匿名內部類 public void start int interval,boolean beep timer t new timer interval listener t.start 0 形式即 new supertype ...