java第四天學習內容回顧——java白皮書第四章

  • java中有自動的垃圾回收器,不需要人工回收內存或者資源,所以java不支持析構函數。

  • finalize方法可以添加進任何一個類,可以用來在回收短缺的資源,但作者並不提倡使用這個方法,因爲程序員無法確定這個方法將在哪一時刻被調用,只知道它將在垃圾回收器前調用。

  • System.runFinalizersOnExits 這個方法能夠確保finalizer方法在java關閉前調用,但作者認爲這樣並不安全,有一個替代的方法:Runtime.addShutdownHook方法,具體在白皮書後面介紹。

  • java中的import與c/c++中的#include粗看起來可能效果功能相同,但是卻存在本質區別——C/C++編譯器並不具備查看文件的功能,但是JAVA編譯具備這種功能,所以這裏有一個因果:所以C/C++需要使用#include來將聲明包含進來,然而java使用import只是將包的路徑包含,然後有編譯器去查看文件。這裏又有一個因果:所以C/C++沒有#include就不行,但是在java中如果要聲明一個變量,此時如果把包的路徑完全給出並且由此包中的類名作爲類型名的話就可以不使用Import包含這個包,程序不會出錯。作者指出相對於C/C++中的#include,它們的namespce和using兩個保留字更加相似與java中的package和import;

  • 關於java中的靜態導入問題,作者態度曖昧,詳述於P136 白皮書。

  • 將類放入包中,需要利用到package+包名,並將這條語句放置於源文件的開頭,否則這個類就會被放入默認包,詳述於白皮書P137

  • 對於沒有public和private修飾的類、數據域、方法等,表示可以被本包中的所有方法訪問。所以一定要注意private不能遺忘,否則會破壞類的封裝性。關於包密封機制詳述於——白皮書P140,可以禁止向包中添加類。

  • 有關路徑問題詳述於——白皮書p141,目前暫時略過

  • 關於註釋問題 詳述於——白皮書p144,目前十分粗略的瀏覽。

  • java類的設計時需要注意:a.一定要保證數據的私有 b.一定要將數據初始化 c.不要使用過多的基本類型. d.類的職責不應過多 e.命名

  • 此處之後爲第五章內容

  • java中繼承的關鍵字是extands ——A extands B A繼承於B,不同於C++中的  :,而且java中的所有繼承都是共有繼承。超類——相當於超集的類(B) ,子類——相當於子集的類(A)。

  • 子類中的方法不能直接訪問超類中的私有數據域,需要通過超類中的訪問器(接口函數)調用,如果子類中的方法與超類中的方法命名衝突,會覆蓋超類方法,此時如果想使用超類方法可以利用super.方法名調用,不同於C++中的 :: 。雖然可以覆蓋,但並不能刪除超類中的任何元素(方法,數據域)。

  • java子類的構造器中需要調用super();作爲調用超類的構造器,用於將子類中在超類中聲明的數據域進行初始化,並且,super()必須放在第一條語句位置。這裏作者提到java中this和super的方法使用有些相似,例如this有兩個功能1:表示隱藏參數2:構造器轉移  super也有兩個功能1:使用超類的同名方法 2:調用超類構造器。

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章