什麼是物件導向

2022-06-27 07:12:16 字數 1683 閱讀 1358

四大特徵:

1、封裝:

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

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

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

2、繼承:

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

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

3、多型:

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

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

4、抽象:

有些觀點並沒有把抽象列為物件導向的特徵。但實際上這是物件導向的乙個本質的東西。

雖然銀行五花八門,但我們可以找到他們的共性,比如上面說的,基本的銀行有訪問款業務,投資銀行有投資業務,之類,其實就是對銀行作出了乙個抽象的看法。

在操作的時候,這些業務其實就是乙個個的介面,我不管面對的是什麼具體的銀行,只要是同乙個型別的銀行,我都可以進行相同的業務辦理。

五大基本原則

單一職責原則:類的功能要單一,不能包羅永珍,跟雜貨鋪似的。

開放封閉原則:乙個模組對於拓展是開放的,對於修改是封閉的。

裡式替換原則:子類可以替換父類出現在父類能夠出現的任何地方。

依賴倒置原則:高層次的模組不應該依賴於低層次的模組,他們都應該依賴於抽象。

介面分離原則:設計時採用多個與特定客戶類有關的介面比採用乙個通用的介面要好。

物件導向與面向過程

面向過程:

優點:易維護、易復用、易擴充套件,由於物件導向有封裝繼承多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護

缺點:效能比面向過程第

面向過程:

優點:效能上它是優於物件導向的,因為類在呼叫的時候需要例項化,開銷過大。

缺點:不易維護、復用、擴充套件

人生有兩齣悲劇。一是萬念俱灰;另一是躊躇滿志。—— 蕭伯納

什麼是面向過程?什麼是物件導向?

論語 述而 舉一隅,不以三隅反,則不復也。簡單來說就是舉一反三,我們知道計算機大神會許多種程式語言,對於一門新的語言他們只要乙個月或者幾個星期就可以精通。而對於我們這種程式設計的初學者學會一門語言都感覺好難,更別說精通了。其實主要還是我們的方法不對會接,我們沒有一種程式設計的思維所以我們學起來比較困...

什麼是物件導向

什麼是物件導向 物件導向,就是,思考問題的方法,以物件為主體,眼睛看什麼都是物件 說 物件 其實還是不好懂,因為這個概念是直接從英文翻譯過來的 對中國人也許說,面向東西,面向物體 抽象的物體 面向事物,之類的翻譯或許更好理解 為什麼說是物件導向呢,是為了和 面向過程 相對以前 物件導向 的程式概念等...

什麼是物件導向?

物件導向程式設計 基本定義 物件 object 一切客觀實體的抽象,即將現實世界中的事物抽象成物件 類 class 定義了一件事物的抽象特點。如 狗 是乙個類,它包含狗的一切特徵和行為,是乙個模板 物件 object 是類的例項。如 名叫pyton的臘腸狗 物件導向的起源 1.以c為例他是結構化的語...