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

面向物件(上)-類與物件

一、面向物件學習的三條主線(大處著眼 小處著手)

  1. Java類及類的成員:屬性、方法、構造器;程式碼塊、內部類
  2. 面向物件的三大特徵:封裝性、繼承性、多型性、(抽象性)
  3. 其他關鍵字:this、super、static、final、abstract、interface、package、import等

二、面向物件與面向過程(理解)

舉例:“把大象裝進冰箱”

  1. 面向過程:強調的是功能行為,以函式為最小單位,考慮怎麼做
    ①把冰箱門開啟
    ②抬起大象,塞進冰箱
    ③把冰箱門關掉
  2. 面向物件:強調具備了功能的物件,以類、物件為最小單位,考慮誰來做
人{
      開啟(冰箱){
          冰箱.開開();
      }

      抬起(大象){
          大象.進入(冰箱);
      }

      關閉(冰箱){
          冰箱.閉合();
      }
 }
冰箱{
      開開(){}
      閉合(){}
 }
大象{
      進入(冰箱){}
 }

三、完成一個專案(或功能)的思路

四、面向物件中兩個重要的概念

  • 類:對一類事物的描述,是抽象的、概念上的定義
  • 物件:是實際存在的該類事物的每個個體,因而也稱為例項(instance)

  • 面向物件程式設計的重點就是類的設計
  • 設計類,就是設計類的成員
  • 二者的關係:物件,是由類new出來的(派生出來的)

五、面向物件思想落地實現的規則

  1. 建立類,設計類的成員
  2. 建立類的物件
  3. 通過"物件.屬性"或"物件(物件名).方法"呼叫物件的結構

補充:幾個概念的使用說明
屬性(對應類中的成員變數) = 成員變數 = field = 域、欄位
方法(對應類中的成員方法,方法體現的是行為) = 成員方法 = 函式 = method
建立類的物件 = 類的例項化 = 例項化類

六、物件的建立與物件的記憶體解析

  • 典型程式碼
Person p1 = new Person();
Person p1 = new Person();
Person p3 = p1;//此處沒有新建立一個物件,共用一個堆空間中的物件實體
  • 說明
如果建立了一個類的的多個物件,則每個物件都獨立的擁有一套類的屬性(非static的)
意味著,如果我們修改一個物件的屬性a,則不影響另外一個物件屬性a的值
  • 記憶體解析