Chapter 2This is a featured page

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函式可以用'類別.函式"的方式執行。

耦合;
類別與類別之間的關聯程度。
越低越好,不應該類別之間互相知道不該知道的細節。

內聚:
類別內部的關係。
越特殊越好,一個專門處理某特定工作的類別具有優良的內聚力。


No user avatar
sadme
Latest page update: made by sadme , Aug 9 2007, 6:51 AM EDT (about this update About This Update sadme Edited by sadme

1 word added

view changes

- complete history)
Keyword tags: class
More Info: links to this page
Started By Thread Subject Replies Last Post
swangs Static討論 0 Aug 16 2007, 10:14 PM EDT by swangs
Thread started: Aug 16 2007, 10:14 PM EDT  Watch
http://www.javaworld.com.tw/jute/post/view?bid=29&id=11490&sty=1&tpg=1&age=0
1  out of 1 found this valuable. Do you?    
Keyword tags: None (edit keyword tags)

Anonymous  (Get credit for your thread)


Showing 1 of 1 threads for this page
Word Document 【 Garfield 的 SCJP 閱讀筆記 】.doc (Word Document - 788k)
posted by swangs   Aug 9 2007, 12:54 AM EDT
This attachment has no description.