Already a member?
Sign in
Chapter 2
Encapsulation:
保護實體變數(使用private)。
用getter和setter存取實體變數。
Is-A,Has-A:
Is-A表示某類別為另一類別在繼承樹上的子類別,用extends和implements來表示。
Has-A表示一個類別的實體"有"另一類別的實體的參考。
Inheritance:
Polymorphism:
一個類別Is-A多個類別時,它就是多型。
reference只能屬於一種型別,且不能改變,不過指到的物件可以改變。
父類別型別的reference被指定一個子類別的物件:
只能使用父類別擁有的函式,但是實際跑的時候會跑子類別所實做的函式(編譯器編譯時會判斷reference的型 別來限制範圍)
Override:
覆寫一個函式必須signature(參數、回傳型別)和被覆寫的函式一樣才算覆寫,回傳型別可以是原回傳型別的子類 別(convariant回傳)。
存取等級不能變小。
異常範圍不能變大。
不能覆寫final、static或其他不能繼承的函式。
想呼叫被覆寫的函式可以用super。
Overload:
參數一定要不同。
回傳型態可以不變。
存取修飾子可以不變。
異常宣告可以不同。
Casting:
同繼承樹上可以轉型,通常是downcasting,因為向上轉型會自動執行,可以不寫。
Interface:
implements介面必須實做所有介面的函式。
可以用抽象類別implements介面,讓下一個具體的類別去實做所有函式。
一個類別可以實做不只一個介面(用逗點隔開),但只能繼承一個類別。
介面不能implements介面。
介面不能implements類別。
介面不能extends類別。
回傳:
回傳類別是物件時可以回傳null。
陣列可以是合法回傳型別。
回傳型別是物件參考時可以回傳任何可以轉成回傳型別的物件型別(array => object)
Constructor:
建構子沒有回傳型別、名稱跟類別一樣。
沒寫建構子時編譯器會自動產生一個沒有參數的建構子。
建構子會先呼叫、執行父類別的建構子,一直到繼承樹最上方,最後執行自己。
建構子可以多載。
介面沒有建構子。
在父類別建構子完成前不能呼叫實體函式或存取實體變數。
父類別的建構子有參數時,呼叫父類別的建構子一定要給定參數。
建構子不能被繼承,所以不能被覆寫(只有實體函式可被覆寫)。
建構子第一行必須呼叫super()或this()。
Static:
被宣告成static的函式或變數是被類別所執行,被所有實體所共用。
static的函式中不能直接存取實體函式、變數,可以透過物件參考存取。
存取static變數可以用'類別.變數"的方式存取。
存取static函式可以用'類別.函式"的方式執行。
耦合;
類別與類別之間的關聯程度。
越低越好,不應該類別之間互相知道不該知道的細節。
內聚:
類別內部的關係。
越特殊越好,一個專門處理某特定工作的類別具有優良的內聚力。
保護實體變數(使用private)。
用getter和setter存取實體變數。
Is-A,Has-A:
Is-A表示某類別為另一類別在繼承樹上的子類別,用extends和implements來表示。
Has-A表示一個類別的實體"有"另一類別的實體的參考。
Inheritance:
Polymorphism:
一個類別Is-A多個類別時,它就是多型。
reference只能屬於一種型別,且不能改變,不過指到的物件可以改變。
父類別型別的reference被指定一個子類別的物件:
只能使用父類別擁有的函式,但是實際跑的時候會跑子類別所實做的函式(編譯器編譯時會判斷reference的型 別來限制範圍)
Override:
覆寫一個函式必須signature(參數、回傳型別)和被覆寫的函式一樣才算覆寫,回傳型別可以是原回傳型別的子類 別(convariant回傳)。
存取等級不能變小。
異常範圍不能變大。
不能覆寫final、static或其他不能繼承的函式。
想呼叫被覆寫的函式可以用super。
Overload:
參數一定要不同。
回傳型態可以不變。
存取修飾子可以不變。
異常宣告可以不同。
Casting:
同繼承樹上可以轉型,通常是downcasting,因為向上轉型會自動執行,可以不寫。
Interface:
implements介面必須實做所有介面的函式。
可以用抽象類別implements介面,讓下一個具體的類別去實做所有函式。
一個類別可以實做不只一個介面(用逗點隔開),但只能繼承一個類別。
介面不能implements介面。
介面不能implements類別。
介面不能extends類別。
回傳:
回傳類別是物件時可以回傳null。
陣列可以是合法回傳型別。
回傳型別是物件參考時可以回傳任何可以轉成回傳型別的物件型別(array => object)
Constructor:
建構子沒有回傳型別、名稱跟類別一樣。
沒寫建構子時編譯器會自動產生一個沒有參數的建構子。
建構子會先呼叫、執行父類別的建構子,一直到繼承樹最上方,最後執行自己。
建構子可以多載。
介面沒有建構子。
在父類別建構子完成前不能呼叫實體函式或存取實體變數。
父類別的建構子有參數時,呼叫父類別的建構子一定要給定參數。
建構子不能被繼承,所以不能被覆寫(只有實體函式可被覆寫)。
建構子第一行必須呼叫super()或this()。
Static:
被宣告成static的函式或變數是被類別所執行,被所有實體所共用。
static的函式中不能直接存取實體函式、變數,可以透過物件參考存取。
存取static變數可以用'類別.變數"的方式存取。
存取static函式可以用'類別.函式"的方式執行。
耦合;
類別與類別之間的關聯程度。
越低越好,不應該類別之間互相知道不該知道的細節。
內聚:
類別內部的關係。
越特殊越好,一個專門處理某特定工作的類別具有優良的內聚力。
sadme |
Latest page update: made by sadme
, Aug 9 2007, 6:51 AM EDT
(about this update
About This Update
Edited by sadme
1 word added view changes - complete history) |
|
Keyword tags:
class
More Info: links to this page
|
|
|
【 Garfield 的 SCJP 閱讀筆記 】.doc (Word Document - 788k)
posted by swangs Aug 9 2007, 12:54 AM EDT
This attachment has no description.
|