物件導向的理解及三大特性總結

2021-08-28 18:04:16 字數 1757 閱讀 5580

物件導向oop是基於面向過程而言,物件導向簡單來說就是將功能封裝到物件(資料和操作結合)裡,我們物件導向,讓物件去完成這些功能。

萬物皆物件。(在我們程式設計師眼中,一切皆物件)

理解物件導向:

經典案例:把大象塞進冰箱

1>>面向過程的做法:1.開啟冰箱門 2.把大象塞進去 3.關閉冰箱門

當有兩個不同的人用不同的方法實現這樣的步驟,我們需要為不同的人量身定做不同解決事情的方法。

2>>物件導向,找個物件幫你做事

我們把冰箱作為物件,1.冰箱門可以被開啟 2.大象可以被塞進去 3.冰箱門可以被關閉(物件導向寫出通用的方法,遮蔽了所有人的差異)

如:關門

面向過程

張三踹開門

李四輕輕關上了門

物件導向:關門 門可以被關閉(可以避免上述面向過程的差異)

總結:從被動方去找物件

描述物件:描述物件的屬性和方法。物件是看得見摸得著的。

我們把具有相同屬性和相同方法的物件進行進一步的封裝,得到類的概念。

類包含:

fields 字段(存資料,私有);methods方法; propertites屬性(中間熵,public)

如:類是乙個蓋大樓的圖紙,物件是蓋出來的大樓。類是不佔記憶體的,物件佔記憶體,也就是類的字段佔記憶體

person mk=new person();//自定義類person

this._name=『mk』;//this代表當前類的物件,在這裡指mk這個物件

//fields

string _name;

/// /// property 能對字段的取值和賦值進行限定

///

public string name

set

//賦值時,給屬性賦值,執行set方法通過value傳給欄位_name

}int _age;

public int age

set//賦值時檢測形參的資料

_age = value;}}

char _gender;

public char gender

return _gender;

}set

}

當列印(獲取)資料時,應該訪問屬性,因為屬性有get,set方法,可以對資料的取值賦值進行檢測,如果直接獲取字段,則不會執行我們的檢測**

屬性的作用是保護字段,為字段的取值和賦值進行限定。和外界打交道的是屬性

屬性的本質:get() ; set() 方法,可讀可寫

重寫與過載,隱藏的區別:

重寫:發生在子類和父類之間,當子類繼承父類中的方法時,子類中的方法與父類方法的名稱,引數個數,引數型別完全一致時,稱子類重寫了父類的方法。

過載:乙個類中的多個方法的名稱相同,引數個數或者引數型別不同,則稱為過載方法

覆蓋:子類重新實現了父類的方法,而隱藏只是把父類中的方法藏了起來,通過父類的引用來呼叫這個方法的時候,這個被隱藏的方法就被啟用了。

了解三大特性:封裝,繼承,多型

抽象父類有方法body(),子類繼承父類重寫body方法,new出不同的物件,這些物件去執行相同的body方法,有不同的執行結果,這就是多型。上述例子中想要停止這種繼承重寫,用關鍵字sealed修飾類即可。

js物件導向及物件導向的三大特性

一 js物件導向程式設計 在es5中我們是這樣去寫物件導向的程式設計方式的 function person name this setname function name let p newperson 張三 p.getname 張三 p.setname 李四 p.getname 李四在es6中,提...

C 物件導向三大特性總結

一,封裝1.什麼是類?類是一種抽象的概念,是一種資料結構,是由多個物件的共同點抽象出來的。包括字段,屬性,方法,建構函式等要素。2.什麼是物件?物件是具體的,是類的具體例項。3.什麼是封裝?封裝就是打包,將 打包。4.封裝在c 中的體現 1 屬性封裝字段 2 將方法的多個引數封裝成乙個物件 3 將一...

物件導向三大特性

什麼是物件導向呢?之前我們做一件事的時候,常常是確定,先幹什麼,然後怎麼做,最後可以完事了。其實我們不妨這麼想一下,我們做事的時候是可以這樣的 這件事中涉及了什麼物件角色?如果我要把這件事做成那麼就需要物件之間是如何協作的?第二種方法,就是今天說的物件導向的方法了,好處正在慢慢體會。今天我想說的物件...