什麼是物件導向

2021-10-01 01:28:50 字數 1653 閱讀 7375

物件導向的三個基本特徵是:封裝、繼承、多型。

我們知道,封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的**模組(類);它們的目的都是:**重用。而多型則是為了實現另乙個目的——介面重用!多型的作用,就是為了類在繼承和派生的時候,保證使用「家譜」中任一類的例項的某一屬性時的正確呼叫。
封裝:

封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中(我們稱之為類)。被封裝的物件通常被稱為抽象資料型別。

封裝的意義:

封裝的意義在於保護或者防止**(資料)被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它的函式意外的修改。

保護資料成員,不讓類以外的程式直接訪問或修改,只能通過提供的公共的介面訪問==>資料封裝。

方法的細節對使用者是隱藏的,只要介面不變,內容的修改不會影響到外部的呼叫者==>方法封裝。

當物件含有完整的屬性和與之對應的方法時稱為封裝。

從物件外面不能直接訪問物件的屬性,只能通過和該屬性對應的方法訪問。

物件的方法可以接收物件外面的訊息。

類成員的訪問修飾符:

即類的方法和成員變數的訪問控制符,乙個類作為整體物件不可見,並不代表他的所有域和方法也對程式其他部分不可見,需要有他們的訪問修飾符判斷。

許可權如下:

繼承:繼承主要實現重用**,節省開發時間。

1、c#中的繼承符合下列規則:

繼承是可傳遞的。如果c從b中派生,b又從a中派生,那麼c不僅繼承了b中宣告的成員,同樣也繼承了a中的成員。object類作為所有類的基類。

派生類應當是對基類的擴充套件。派生類可以新增新的成員,但不能除去已經繼承的成員的定義。

建構函式和析構函式不能被繼承。除此之外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。

派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這派生類刪除了這些成員,只是不能再訪問這些成員。

類可以定義虛文法、虛屬性以及虛索引指示器,它的派生類能夠過載這些成員,從而實現類可以展示出多型性。

2、new關鍵字

如果父類中宣告了乙個沒有friend修飾的protected或public方法,子類中也宣告了同名的方法。則用new可以隱藏父類中的方法。(不建議使用)

3、base關鍵字

base 關鍵字用於從派生類中訪問基類的成員:

呼叫基類上已被其他方法重寫的方法。

指定建立派生類例項時應呼叫的基類建構函式。

多型:

1、「乙個介面,多種方法」
同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。

多型的三個條件:

a. 繼承的存在(繼承是多型的基礎,沒有繼承就沒有多型).

b. 子類重寫父類的方法(多型下呼叫子類重寫的方法).

c. 父類引用變數指向子類物件(子類到父類的型別轉換).

過載(overload)和重寫(override)是實現多型的兩種主要方式。

2、實現多型:

介面多型性。

繼承多型性。

通過抽象類實現的多型性。

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

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

什麼是物件導向

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

什麼是物件導向?

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