關於物件導向

2022-08-29 03:27:13 字數 1657 閱讀 6575

世間任何事物都可以定義為物件。

類就是把物件的公共屬性和方法抽離出來形成集合的抽象,也就是說,類是一種抽象,用來描述物件特徵的抽象。

例項就是物件,就好比我們,就是人這種抽象的乙個例項。

從字面上來看,構造方法是用來構造物件,當物件正在建立時,會通過構造方法對物件進行初始化。

構造方法的特徵:

方法過載就是同乙個方法,在使用的時候能夠根據你引數的型別,從而表現出不同的行為

public class person 

public void eat(fruit fruit)

...}

方法過載提供了函式可擴充套件的能力,使用時僅需:

優點:

通常,我們在設計乙個功能時,總是會把與該功能類似的所有屬性和行為都封裝在乙個類中,這樣就可以避免功能內部的行為與別的類產生依賴性,別人使用你的功能時,僅僅需要知道如何呼叫你的介面來獲取想要的資訊,不需要理會內部實現到底是怎麼做。

對於類的內部,一般開發者只提供必要的介面來訪問它的內部屬性,不會允許你直接操作它的內部,這樣做有利於保證使用者是按照設計者的設計邏輯控制使用,避免因為非法使用而導致錯誤的發生。

特點:

優點

物件的繼承是一種 'is-a' 的關係,如果兩個物件 a 和 b ,可以描述為 『b 是 a』,則表明 b 可以繼承 a。

繼承關係不能簡單地理解為父親和兒子的關係,繼承關係實際上是一種特殊關係,就好比貓和哺乳動物,貓是哺乳動物的一種特殊抽象,因為它除了具備哺乳動物的特性外,還具備自己獨有的個性;比如它會抓老鼠、抓魚,這些並不是哺乳動物的共同特性。

當然,在設計類的時候,千萬不要為了繼承而繼承,過多的使用繼承會使得整個類層次結構變得十分複雜,使得類與類之間的耦合性變強,所以在使用繼承的時候千萬要理清物件與物件之間的關係;在沒有必要選擇繼承的情況下推薦使用組裝。

當然是否要使用繼承,這也得看具體情況,當兩個類擁有 『is-a』 的關係,可以使用繼承;當兩個類擁有 'has-a' 的關係,可以使用組裝。

多型也叫動態繫結,即是系統在執行時會根據物件的執行時型別,從而表現出不同的行為

特點:

與動態繫結相對的則是靜態繫結,c語言程式設計採用的就是靜態繫結。靜態繫結是在 編譯期進行,也就是說,你的程式在編譯的時候,他已經對各個方法的呼叫的位址已經做了繫結,所以在執行的時候,程式會直接根據你的方法位址去呼叫具體的方法。

而向物件導向程式設計多型採用的則是動態繫結,那麼動態繫結他到底是如何做的呢?程式執行的時候又是如何確定它的執行時型別從而呼叫對應的方法的呢?

之後再詳解。

特點:

特點:對於初學者來說,很多人在學習的時候,肯定都會有這麼乙個疑問,介面和抽象類的區別到底是什麼,我們在設計程式的時候,什麼時候應該用抽象類,什麼時候用介面呢?

那麼先來說說這兩者的使用特點的區別:

那麼現在就來說說它們在設計思想上的區別:

也就是說,不論是介面、抽象類、類甚至物件,都是在不同層次、不同角度進行抽象的結果,它們的共性就是抽象。通常抽象類是對目前一類存在共性的子類的一種泛化,通過抽離出子類間的共同屬性和行為,從而進行抽象的一種泛化;而介面則是預先定義了一套有關聯的行為,至於誰會實現這套行為,開發者自行決定,而我要做的只是告訴介面的實現類你擁有哪些行為而已。

關於物件導向思想

理解物件導向 物件導向是一種思想,是基於面向過程而言的,就是說物件導向是將功能等通過物件來實現,將功能封裝進物件之中,讓物件去實現具體的細節 這種思想是將資料作為第一位,而方法或者說是演算法作為其次,這是對資料一種優化,操作起來更加的方便,簡化了過程。物件導向有三大特徵 封裝性 繼承性 多型性 其中...

關於物件導向程式設計

什麼是物件導向程式設計?c primer中指出 物件導向程式設計 oop 基於三個基本概念 資料抽象 繼承和動態繫結 在 c 中,用類進行資料抽象,用類派生從乙個類繼承另乙個類 派生類繼承基類的成員 動態繫結使編譯器能夠在執行時決定是使用基類中定義的函式還是派生類中的函式。以前很膚淺的認為物件導向程...

關於物件導向 (一)

物件導向有哪些?什麼是物件導向?物件導向的屬性?物件導向有哪些?1.抽象 2.封裝 3.繼承 4.多型 什麼是物件導向?物件導向 將現實生活中的事物,封裝成物件,通過物件的例項化和呼叫,完成需求。物件導向,關注點是物件的屬性和方法,而忽略事物執行的順序或過程。面向過程 面向過程 將現實生活中的事物,...