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

2021-10-13 02:33:12 字數 2197 閱讀 9545

一:js物件導向程式設計

在es5中我們是這樣去寫物件導向的程式設計方式的:

function

person

(name)

;this

.setname

=function

(name);}

let p =

newperson

("張三");

p.getname()

;// 張三

p.setname

("李四");

p.getname()

;// 李四

在es6中,提供了新的方式去書寫物件導向程式設計,這種方式更加接近物件導向的書寫方式,但本身只是一種語法糖:

// 定義類

class

person

getname()

setname

(name)

}let p =

newpreson

('張三'

) p.

getname()

;// 張三

p.setname

('李四');

p.getname()

;// 李四

二:物件導向的三大特徵

三大特徵分別為:封裝,繼承和多型

1:封裝

我們平時所用的方法和類都是一種封裝,當我們在專案開發中,遇到一段功能的**在好多地方重複使用的時候,我們可以把他單獨封裝成乙個功能的方法,這樣在我們需要使用的地方直接呼叫就可以了。

2:繼承

繼承在我們的專案開發中主要使用為子類繼承父類,下面是es6繼承的書寫方法

class

father

//例項方法,通過例項物件呼叫

getname()

// 靜態方法不會被繼承,並且是通過類名去呼叫的

static

hitxiaoming()

}class

sonextends

father

}var daming =

newfather

('大明');

father.

hitxiaoming()

;//打小明

daming.

getname()

;//大明

var xiaoming =

newson

('小明',15);

xiaoming.

getname()

;//小明

三:多型

多型的具體表現為方法過載和方法重寫:

方法過載:過載是指不同的函式使用相同的函式名,但是函式的引數個數或型別不同。呼叫的時候根據函式的引數來區別不同的函式

方法重寫:重寫(也叫覆蓋)是指在派生類中重新對基類中的虛函式(注意是虛函式)重新實現。即函式名和引數都一樣,只是函式的實現體不一樣

下面我們根據上面的例子在新增乙個work的方法說明一下方法重寫:

class

father

//例項方法,通過例項物件呼叫

getname()

work()

// 靜態方法不會被繼承,並且是通過類名去呼叫的

static

hitxiaoming()

}class

sonextends

father

work()

}var daming =

newfather

('大明');

daming.

work()

// 我的工作是累死累活,賺錢養家。

var xiaoming =

newson

('小明',15);

xiaoming.

work()

;// 我的工作是好好學習,天天向上。

以上我們重寫了父類的work()方法。

三大特徵的優點:

封裝:封裝的優勢在於定義只可以在類內部進行對屬性的操作,外部無法對這些屬性指手畫腳,要想修改,也只能通過你定義的封裝方法;

繼承:繼承減少了**的冗餘,省略了很多重複**,開發者可以從父類底層定義所有子類必須有的屬性和方法,以達到耦合的目的;

多型:多型實現了方法的個性化,不同的子類根據具體狀況可以實現不同的方法,光有父類定義的方法不夠靈活,遇見特殊狀況就捉襟見肘了

js物件導向的三大特性

0x00 使用oop技術,常常要使用許多的 模組,每個模組都提供特定的功能,每個模組老師孤立的,甚至與其它的模組完全獨立,這種模組化的程式設計方法大大的提供了 實現的多樣性,大大增加了 的重用性。js並不是直接的oop語言,但是可以通過模擬的方式做到其它很多oop語言才能做到的事情,如繼承 多型 封...

物件導向三大特性

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

物件導向三大特性

0x00 嘮嘮叨叨 只是做乙個概念的記錄 0x01 物件導向的三大特性 n 封裝 把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。類將成員變數和成員函式封裝在類的內部,根據需要設定訪問許可權,通過成員函式管理內部狀態。n 繼承 繼承所表達的是類...