本文是《 JAVA 編程思想》第四章的讀書筆記
一、 用構造函數初始化
1.1、?? 函數的簽名和返回值
構造函數可以通過不同的函數簽名來進行重載。構造函數沒有返回值,這和返回值為 void 的是不同的
1.2、?? 構造函數的重載
如何區分構造函數的不同呢,用不同的函數簽名。函數簽名的順序不同都可以,但是這樣的編程風格是不好的。
函數的簽名會上升轉型(當沒有合適的函數簽名出現的時候),但是不會窄化轉型,你必須要顯示的進行強制類型轉換。
不能以 return value 的不同作為重載的標準。
當程序提供了構造函數以后,系統就不在提供默認的構造函數了。
This 關鍵字指的是當前對象,有了 this 后,可以在構造函數中以如下的方式調用
















1.3、?? Static 的含義
你無法在 static 函數中調用 non-static 函數,但是你可以在 non-static 中調用 static 函數。
二、 類的清理
JAVA 的垃圾回收機制只能回收 new 出來的對象,但是你的對象不是 new 出來的而獲得的“特殊”內存,那么 JAVA 的垃圾回收就不能處理,這樣就必須用 finalize() 函數來釋放你的“特殊”內存。
JAVA 的清理方式是先調用你的 finalize() ,然后在下次垃圾回收的時候來清理你的“特殊”內存。
關鍵的三句話:
垃圾回收不等于析構;
你的對象可能不被回收;
垃圾回收動作只回收內存。
用 System.gc() 可以用來強迫終結動作的發生