第4章 對象與類

4.1 面向?qū)ο蟪绦蛟O(shè)計概述

4.1.1 類

  • 類(class)是構(gòu)造對象的模板或藍圖
  • 封裝不過是將數(shù)據(jù)和行為組合在一個包中

4.1.2 對象

4.1.3 識別類

  • 名詞與動詞

4.1.4 類之間的關(guān)系

  • 依賴:uses-a
  • 聚合:has-a
  • 繼承:is-a

4.2 使用預(yù)定義類

4.2.1 對象與對象變量

  • 局部變量不會自動地初始化為null,而必須通過調(diào)用new或?qū)⑺鼈冊O(shè)置為null進行初始化。

4.2.2 Java類庫中的LocalDate類

  • Date類:用來表示時間點
  • LocalDate:用來表示大家熟悉的日歷表示法

4.2.3 更改器方法與訪問器方法

4.3 用戶自定義類

4.3.1 Employee類

4.3.2 多個源文件的使用

4.3.3 剖析Employee類

  • 構(gòu)造器總是伴隨著new操作符的執(zhí)行被調(diào)用

4.3.5 隱式參數(shù)和顯式參數(shù)

  • 方法前面是隱式參數(shù),方法后面是顯式參數(shù)
  • this代表隱式參數(shù),即調(diào)用方法的對象

4.3.6封裝的優(yōu)點

  • 更改器方法可以執(zhí)行錯誤檢查,然而直接對域進行賦值將不會進行這些處理。
  • 不要編寫返回引用可變對象的訪問器方法
  • 如果需要返回一個可變對象的引用,應(yīng)該首先對它進行克隆clone

4.3.7 基于類的訪問權(quán)限

4.3.8 私有方法

4.3.9 final實例域

  • final表示只有一次建立引用的機會,但引用的對象是可以更改的

4.4 靜態(tài)域與靜態(tài)方法

4.4.1 靜態(tài)域

  • 每一個對象都擁有實例域的一份拷貝

4.4.2 靜態(tài)常量

4.4.3 靜態(tài)方法

  • 類直接調(diào)用,沒有隱式參數(shù)
  • 對象也可以調(diào)用靜態(tài)方法,不過,不建議這么使用

4.4.4 工廠方法

  • 本質(zhì)上就是對new方法的封裝

4.4.5 main方法

4.5 方法參數(shù)

  • Java程序設(shè)計語言總是采用按值調(diào)用,方法得到的是參數(shù)值的拷貝,方法不能改變參數(shù)變量的內(nèi)容
  • Java是直接訪問,不存在間接訪問
  • 一個方法可以改變一個對象參數(shù)的狀態(tài)
  • 一個方法不能讓對象參數(shù)引用一個新的對象

4.6 對象構(gòu)造

4.6.1 重載

  • 相同的名字,不同的參數(shù)
  • 返回類型不是方法簽名的一部分

4.6.2 默認域初始化

4.6.3 無參數(shù)的構(gòu)造器

  • 域會自己設(shè)置默認值,但局部變量,必須手動賦初始值

4.6.4 顯示域初始化

  • 在類定義中,直接將一個值賦給任何域。
  • 在聲明中賦值
  • 初始化塊

4.6.5 參數(shù)名

  • this.name = name

4.6.6 調(diào)用另一個構(gòu)造器

  • this

4.6.7 初始化塊

  • 對象初始化塊在構(gòu)造器之前執(zhí)行
  • 調(diào)用構(gòu)造器的具體處理步驟:
    1 所有數(shù)據(jù)域初始化為默認值
    2 按照在類聲明中出現(xiàn)的次序,依次執(zhí)行所有域初始化語句和初始化塊
    3 如果用this調(diào)用其他的構(gòu)造器,則先調(diào)用另外的構(gòu)造器
    4 最后調(diào)用本構(gòu)造器的剩余代碼
  • 對類的靜態(tài)域進行初始化,可以使用靜態(tài)代碼塊

4.6.8 對象析構(gòu)與finalize方法

4.7 包

4.7.1 類的導(dǎo)入

4.7.2 靜態(tài)導(dǎo)入

  • import語句不僅可以導(dǎo)入類,還增加了導(dǎo)入靜態(tài)方法和靜態(tài)域的功能

4.7.3 將類放入包中

  • 如果包與目錄不匹配,虛擬機就找不到類

4.7.4 包作用域

4.8 類路徑

  • classpath:一般就設(shè)置為. 代表當(dāng)前目錄

4.9 文檔注釋

  • javadoc

4.9.1 注釋的插入

4.9.2 類注釋

4.9.3 方法注釋

4.9.4 域注釋

  • 只需要對公有域建立文檔,通常是靜態(tài)常量

4.9.5 通用注釋

4.9.6 包與概述注釋

4.9.7 注釋的抽取

4.10 類設(shè)計技巧

  • 優(yōu)先使用不可變對象,這樣可以避免多線程的并發(fā)修改異常。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容