1. 程式人生 > 其它 >第四章 面向物件(上)- 1 類與物件

第四章 面向物件(上)- 1 類與物件

1.面向物件學習的三條主線:

Java類及類的成員:屬性、方法、構造器、程式碼塊、內部類
面向物件的三大特徵:封裝性、繼承性、多型性(抽象性)
其它關鍵字:this、super、static、final、abstract、interface、package、import等
“大處著眼,小處著手”

2.面向物件與面向過程(理解)

面向過程:強調的是功能行為,以函式為最小的單位,考慮怎麼做。
面向物件:強調具備了功能的物件,以類/物件為最小單位,考慮誰來做。
舉例:人把大象裝冰箱

3.完成一個專案(或功能)的思路:
面向物件分析方法分析問題的思路和步驟:
1)根據問題需要,選擇問題所針對的現實世界中的實體。
2)從實體中尋找解決問題相關的屬性和功能,這些屬性和功能就形成了概念世界中的類。
3)把抽象的實體用計算機語言進行描述,形成計算機世界中類的定義。即藉助某種程式的語言, 把類構造成計算機能夠識別和處理的資料結構。
4)將類例項化成計算機世界中的物件,物件是計算機世界中解決問題的最終工具。

4.面向物件中兩個重要的的概念:
類:對一類事物的描述,是抽象的、概述上的定義。
物件:是實際存在的該類事物的每個個體,因而也稱為例項(instance)

面向物件程式設計的重點是類的設計
類的設計,其實就是類的成員的設計

二者的關係:
物件,是由類new出來的,派生出來的。

5.面向物件思想落地實現的規則一:

建立類,設計類的成員
建立類的物件
通過“物件.屬性” 或 “物件.方法”呼叫物件的結構

補充:幾個概念的使用說明:

屬性 = 成員變數 = field = 域、欄位
方法 = 成員方法 = 函式 = method
建立類的物件 = 類的例項化 = 例項化類

6.物件的建立與物件的記憶體解析


【典型程式碼】

Person p1 = new Person();
Person p2 = new Person();
Person p3 = p1;  //沒有新建立一個物件,共用了一個堆空間的物件實體
說明:
如果建立一個類的多個物件,則每個物件都是獨立的擁有一套類的屬性。(非static的)
意味著:如果我們修改一個物件的屬性a,則不會影響另外一個物件的屬性a的值。

記憶體解析:

7.匿名物件:我們建立的物件,沒有顯示的賦給一個變數名。即為匿名物件。
特點:
匿名物件只能呼叫一次。

舉例:匿名物件
  new Phone().sendEmail();  //沒有將new Phone 賦給一個變數名,所以叫匿名
  new Phone().playGame();  //每新new一個就是新的物件。
//舉例: 匿名物件
  new Phone().price = 1990;
  new Phone().showPrice();

應用場景:
//匿名物件的使用
  PhoneMall mall = new PhoneMall();
  mall.show(new Phone());
  }
}

其中:
class PhoneMall{
  public void show(Phone p){
    phone.sendEmail();
    phone.playGame();
  }

}


理解萬事萬物皆物件:
1.在Java語言範疇中,我們都將功能、結構等封裝類中,通過類的例項化,來呼叫具體的功能結構

Scanner,String等
檔案:File
網路資源:URL

2.涉及到Java語言與前端HTML、後端的資料庫互動時,前後端的結構在Java層面互動時,都體現類、物件。