1.2數(shù)據(jù)抽象

1.

抽象數(shù)據(jù)類型(ADT):是一種能夠對使用者隱藏數(shù)據(jù)表示的數(shù)據(jù)類型。

API:應用程序編程接口

對象:是能夠承載數(shù)據(jù)類型的值的實體

對象三大特性:狀態(tài)、標識、行為

狀態(tài):數(shù)據(jù)類型中的值,標識:內存中的位置,行為:數(shù)據(jù)類型的操作

面向對象編程:運用數(shù)據(jù)抽象的思想編寫代碼(定義和使用數(shù)據(jù)類型,將數(shù)據(jù)類型的值封裝在對象中)的方式

2.

5數(shù)據(jù)類型的設計

5.1?封裝

面向對象編程的特征之一就是使用數(shù)據(jù)類型的實現(xiàn)封裝數(shù)據(jù),以簡化代碼和隔離用例開發(fā)。

封裝實現(xiàn)了模塊化編程,它允許我們:

獨立開發(fā)用例和實現(xiàn)的代碼;

切換至改進的實現(xiàn)而不會影響用例的代碼;

支持尚未編寫的程序(對于后續(xù)用例,API能夠起到指南的作用)

封裝同時也隔離了數(shù)據(jù)類型的操作,這使我們可以:

限制潛在的錯誤;

在實現(xiàn)中添加一致性檢查等調試工具;

確保用例代碼更明晰。

模塊化編程成功的關鍵在于保持模塊之間的獨立性。

5.2?設計API

只為用例提供它們所需要的,僅此而已。


5.5 實現(xiàn)繼承

5.6 字符串表示的習慣

publicString?toString()?{

returngetClass().getName()?+"@"+?Integer.toHexString(hashCode());

}

返回一個含有該對象內存地址的字符串。

5.8 等價性

publicbooleanequals(Object obj) {

return(this==obj);

}

== 比較的是引用

equals()比較的是值

Java約定equals()必須是一種等價性關系。它必須具有:

自反性,x.equals(x)為true;

對稱性,當且僅當y.equals(x)為true時,x.equals(y)返回true;

傳遞性,如果x.equals(y)和y.equals(z)均為true,x.equals(z)也將為true。

另外,它必須接受一個Object為參數(shù)并滿足以下性質:

一致性,當兩個對象均未被修改時,反復調用x.equals(y)總是會返回相同的值;

非空性,x.equals(null)總是返回false。

equals()方法重寫規(guī)則:

java中的數(shù)據(jù)類型,可分為兩類:

1.基本數(shù)據(jù)類型,也稱原始數(shù)據(jù)類型。byte,short,char,int,long,float,double,boolean

他們之間的比較,應用雙等號(==),比較的是他們的值。

2.復合數(shù)據(jù)類型(類)

當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較后的結果為true,否則比較后結果為false

對于復合數(shù)據(jù)類型之間進行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基于他們在內存中的存放位置的地址值的,因為Object的equals方法也是用雙等號(==)進行比較的,所以比較后的結果跟雙等號(==)的結果相同。

5.13 契約式設計

使用斷言保證代碼永遠不會被系統(tǒng)錯誤終止或是進入死循環(huán)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.數(shù)據(jù)抽象 ** 數(shù)據(jù)類型:**值+值上的操作Java編程的基礎:主要是使用class關鍵字構造被稱為引用類型的...
    不會code的程序猿閱讀 536評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,057評論 25 709
  • 歡迎Follow我的GitHub, 關注我的簡書. 又是Mat的IOS開發(fā)任務, 這次是會員中心選項的Label顯...
    SpikeKing閱讀 689評論 0 1

友情鏈接更多精彩內容