1. 程式人生 > >重學java---2---面向物件

重學java---2---面向物件

面向物件

  1. 面向物件的三大特徵是:封裝,繼承,多型;而它的基礎則是:抽象。
  2. 一個物件能夠滿足要求,可以不必關心它的具體實現過程
  3. 與面向過程思想:先演算法後資料;不同的是:面向物件:先資料後演算法
  4. 面向物件更適合處理規模較大的問題,面向過程則相反

依賴 與 聚合

  1. 依賴:uses-a的關係,即: 一個類物件的方法操作另一個類物件。
  2. 聚合:has-a的關係,即:一個類物件包含另一個類物件

低耦合高內聚

  1. A類物件(模組)狀態改變時,B類物件(模組)也要跟著改變(A、B間依賴關係嚴重)即:耦合
  2. 解決耦合的方法
    1. 加入中間層(A/B不應該聚合時),A、B物件之間加入C物件,使原來A直接作用於B的關係,變為:A作用於C,C再作用B的間接關係
    2. A、B聚合:A包含B,或者C同時包含A、B

指標與引用的區別

相同點: 都指向一塊記憶體

不同點:

指標 引用
指向記憶體塊的首地址,需要的時候可以讓它指向別的記憶體 引用與物件(記憶體塊)繫結,不可以再指向別的物件(記憶體塊)
指標需要手動分配儲存空間(宣告,賦值) 物件生成時已初始化好,包含在物件內(自己猜的)

也就是說:

一個物件包含三個部分:1.狀態(成員變數)2.行為(方法)3.唯一標識identity(引用)