面向物件(上)-類與物件
阿新 • • 發佈:2021-06-29
一、面向物件學習的三條主線(大處著眼 小處著手)
- Java類及類的成員:屬性、方法、構造器;程式碼塊、內部類
- 面向物件的三大特徵:封裝性、繼承性、多型性、(抽象性)
- 其他關鍵字:this、super、static、final、abstract、interface、package、import等
二、面向物件與面向過程(理解)
舉例:“把大象裝進冰箱”
- 面向過程:強調的是功能行為,以函式為最小單位,考慮怎麼做
①把冰箱門開啟
②抬起大象,塞進冰箱
③把冰箱門關掉 - 面向物件:強調具備了功能的物件,以類、物件為最小單位,考慮誰來做
人{ 開啟(冰箱){ 冰箱.開開(); } 抬起(大象){ 大象.進入(冰箱); } 關閉(冰箱){ 冰箱.閉合(); } }
冰箱{
開開(){}
閉合(){}
}
大象{
進入(冰箱){}
}
三、完成一個專案(或功能)的思路
四、面向物件中兩個重要的概念
- 類:對一類事物的描述,是抽象的、概念上的定義
- 物件:是實際存在的該類事物的每個個體,因而也稱為例項(instance)
- 面向物件程式設計的重點就是類的設計
- 設計類,就是設計類的成員
- 二者的關係:物件,是由類new出來的(派生出來的)
五、面向物件思想落地實現的規則
- 建立類,設計類的成員
- 建立類的物件
- 通過"物件.屬性"或"物件(物件名).方法"呼叫物件的結構
補充:幾個概念的使用說明
屬性(對應類中的成員變數) = 成員變數 = field = 域、欄位
方法(對應類中的成員方法,方法體現的是行為) = 成員方法 = 函式 = method
建立類的物件 = 類的例項化 = 例項化類
六、物件的建立與物件的記憶體解析
- 典型程式碼
Person p1 = new Person();
Person p1 = new Person();
Person p3 = p1;//此處沒有新建立一個物件,共用一個堆空間中的物件實體
- 說明
如果建立了一個類的的多個物件,則每個物件都獨立的擁有一套類的屬性(非static的)
意味著,如果我們修改一個物件的屬性a,則不影響另外一個物件屬性a的值
- 記憶體解析