JS物件導向簡述

2021-10-03 09:40:41 字數 1352 閱讀 9805

一、面向過程和物件導向的區別

面向過程(pop):關注點在於做了什麼,描述的是發展的過程。

物件導向(oop):關注點在於能做什麼,描述的是物件與物件之間的關係。

物件導向的特點:繼承、多型、封裝

二、物件導向的三大特點

物件有三大基本特徵:封裝、繼承、多型。那麼它們具體的含義是什麼呢?接下來,我以一家銀行為例子,大概說一下我對物件導向這幾個特徵的理解。

封裝:對於一般人來說,銀行的印象就只有一排對外辦公的視窗,然後有存款和取款2種基本業務。

銀行是乙個結構非常複雜,功能非常眾多的機構。但實際上,我們並不會很關心它的內部是怎樣運作的,比如銀行的員工是怎樣數錢的,怎樣記錄存款,怎樣開保險櫃,等等。這些對於外部的人員來說,知道了可能會引起更多不必要的麻煩。所以銀行只需要告訴你,你可以在這個視窗辦理業務,可以存款和取款,就夠了。

所謂的封裝,就是指把內部的實現隱藏起來,然後只暴露必要的方法讓外部呼叫。

繼承:

剛才提到了銀行有2種最基本的業務,存款和取款。但現實中,大部分的銀行都不止這兩種業務,還有很多其他的業務,比如投資視窗、辦理對公業務的視窗等等。這些業務,是在最基本的銀行訪問款業務的基礎上再新增的,所以我們可以理解成,基本的銀行是只有2種業務的,然後後來的銀行在保留了原有銀行的業務基礎上,再擴充套件了其他的業務。

如果把基本的銀行看做父類(基類),包含存款和取款2個公共方法,那麼後來的銀行可以看做是子類,它在繼承了基本銀行訪問款的公共方法隻後,還自己新增了投資和對公業務兩個公共方法。有些銀行甚至會重寫基本的訪問款功能,讓自己和基本銀行的業務有一定的區別。這個過程,就是繼承。

多型:

同樣是存款的業務,如果我拿著人民幣和拿著美元去銀行辦理,實際上銀行處理的方式是不一樣的。這種辦理同一種業務(公共方法),由於給予的內容(傳入的引數型別或者數量)不一樣,而導致操作(最終實現的方法)不一樣,叫做編譯多型,也叫做函式的過載。

接下來,我去了一家銀行存款,我不知道這家銀行的存款業務有沒有和基本銀行不一樣,反正我就是把錢存進去了,然後具體業務的實現究竟是呼叫了基本銀行存款功能,還是這家銀行本身有新的存款功能實現,我是不關心的。這種外部直接呼叫乙個方法介面,然後具體實現的內容由實際處理的類來決定使用基類或者子類的方法,就叫做執行時多型。

物件導向程式設計思想簡述

1.在現實世界中是乙個實體或者乙個事物的概念,可以看做是一種具有自身屬性和功能的構件 2.不關心其內部結構及實現方法,僅僅關心他的功能和它的使用方法,也就是該物件提供給使用者的介面.3.物件將其屬性和操作的一部分對外界開放,作為對外介面,將大部分實現細節封裝起來,這是物件的封裝屬性.外界智慧型通估計...

js物件導向

物件導向是相對於面向過程而提出的程式設計思想 核心在於通過這種方法的設計出來的程式不再是機械的按照設定的步驟去執行,而是按照需要的步驟去執行。舉個例子 乙個人要吃飯,如果用的面向過程的話就必須執行吃飯前的一切行為,而物件導向則可以跳過之前的環節!建構函式 所謂的工廠方式 用來構造抽象物件,通過呼叫建...

js物件導向

js物件導向 一 什麼是物件 物件可以看成乙個屬性的集合。對像一般有屬性和方法構成,方法的實質是函式,而屬性的實質是變數。二 什麼是物件導向 物件導向可以理解為不需要去了解對像的內部結構,就可以使用它。像我們的date 對像的方法可以獲取和設定時間,但我們並不了解其內部原理。三 物件導向 抽風機 抽...