天天看點

《像計算機科學家一樣思考JAVA》書摘

介紹:這本書很薄,介紹的内容沒有系統性,優點是一些名詞術語做了解釋,概念清晰,适合門外漢當作科普讀物       個人感覺沒有多少營養,以下是讀書筆記 ======================================================================================= 面向對象的特征:

  •     對象通常代表真實世界中的實體
  •     多數的方法都是對象方法,而不是類方法
  •     對象之間的互動是被限制的,不允許一個對象直接通路另一個對象的執行個體變量
  •     類被組織成樹狀結構,新類擴充現有類,新類可以添加新的方法,或者替換現有類已有的方法

---------------------------------------------------------------------------------------------------- 對象方法和類方法: 類方法以關鍵字static來識别,不以關鍵字static開頭的方法都是對象方法

調用執行個體變量:

    在對象方法中,可以隐式地引用執行個體變量,不用指明執行個體變量所屬的對象

    在類方法中,所有對執行個體變量的引用都必須是顯式的,既是:對象.執行個體變量

一個類中同時包含對象方法和類方法是容易混肴的,我們需要對類定義進行組織:

    将構造函數放在程式開始,然後定義所有的對象方法,最後定義所有的類方法。

    對象方法可以重名,但他們應該接受不同類型和數量的參數

    main方法是類方法,中間不能用this訓示目前對象

    在類方法中直接通路執行個體變量是非法的 ------------------------------------------------------------------------------------------------------ 繼承:     繼承就是對已有類進行擴充,進而定義新的類型,已有類稱為父類,新類稱為子類     優點:在不修改父類的情況下添加方法和執行個體變量

    子類可以擁有額外的執行個體變量     子類可以擁有額外的方法     子類可以對父類的方法進行重載

類的層級結構:     所有的類都繼承自另外的類,最基本的類是Object類,Object類不包含執行個體變量,但是提供equals等方法     沒有顯式繼承他類的類在預設情況下都繼承自Object類

書籍推薦:《Head First Design Patterns》 ------------------------------------------------------------------------------------------------------- 接口:     一個接口是一個類定義,這種類的方法隻有原型,沒有方法體

    原型:也稱為規範,指明方法的名字、參數、傳回值類型     方法體:也稱為實作,是方法的具體代碼 ------------------------------------------------------------------------------------------------------- public 修飾的執行個體變量和方法意味着可以在其他類或者對象中通路 private。。。對其他類/對象不可見,隻能在本類/對象中通路 在大型程式設計中,對于方法,盡量用純函數,不修改參數,隻求傳回值的,除非必要,再在函數中修改參數。

漸進式開發,先大緻寫出基本功能,再在不同環境中測試,從測試中找到錯誤,修正源程式。

算法要針對一類問題,而不是特定的問題解決

編寫對象應該先寫執行個體變量(基本變量),然後寫構造方法,最後寫其他的實作

遞歸方法的常見錯誤:沒有包含基本條件;或者提供了基本條件,但是永遠執行不到。這将導緻無限遞歸 思考遞歸的方法:試圖了解整個執行流程;用飛躍的信心,相信每一步都是正确的;---後者好

程式開發政策:     漸進式開發:                           從一個可以工作的程式開始,程式做一些可見的事情                       每次隻增加少量幾行代碼,每次改動後都進行測試                       重複以上過程直到達到需求為止 ----------------------------------------------------------------------------------------------------------

術語:

包:類的集合,Java中的類通過包來進行組織

AWT:Abstract Window Toolkit 抽象視窗工具包,是Java中最大且最常用的包之一

泛化:将具體問題抽象化,普遍化,模型化,比如時間表示用60進制的本質。讓程式很簡單。

類變量:在類定義中以static關鍵字修飾的變量,所有該類的對象共享一份類變量的複制

輔助方法:用于輔助其他方法的小方法

編碼:用一種數值體系表示另一組數值,兩者之間要構造成一種映射關系

同一性:表示引用相等,即兩個引用指向同一個對象

等價性:表示引用指向的對象包含的數值相等

抽象:在更高層面 解釋程式的過程,而不是隻通過代碼本身

執行個體:某種類的一個對象

執行個體變量:組成對象的一個命名項。每個對象都維護了其所屬類的一份執行個體變量的拷貝

=============================================================