C 超高階 物件導向三大特性

2021-08-17 14:12:07 字數 2729 閱讀 2523

本週學習物件導向的三大特性,表面看起來比較容易理解,但是應用到實際上面,根本不知道如何上手。

建議我們在學習某一階段的知識的時候,

千萬不要把某乙個專案或者大部分知識堆積起來,然後再拆分總結;我們總是以為我們在當時理解了,就證明後期也理解了,殊不知我們錯過了很多當時我們的疑問自己思考點;這些才是最寶貴的資源,所以利用起部落格這一工具,及時整理階段性的知識,尋找其中的聯絡,最後我們才能清晰了解我們學到了些什麼。

補充或許當時你理解錯了,或許在他人看起來很低階,但是請不要介意,因為讀者殊不知在你有了新的理解或者認識後,會及時整理部落格的內容,部落格表面上看是展示,但實際上卻是檢驗以及督促自己好好整理學到的知識。

封裝

封裝針對於物件導向語言程式設計的過程中好像我們處處都在使用這個特性

作用減少了大量的冗餘**;將錯綜複雜的功能封裝起來,提供乙個對外的介面,會使用即可

例如:console.writeline();平時使用的很簡單的「類」,起初以為是方法,但是後來發現智慧型提示中標識為「class」;同樣也印證了---靜態類.方法,不需要講類例項化即可使用;同時也做到了類的封裝,不需要讓使用者知道內部是如何呼叫的,只要會使用即可。

例如:定義類中存在的字段、屬性、函式、建構函式同樣也是封裝到類裡面。

字段儲存資料

屬性    

保護字段(get、set)

函式    

保護物件的行為

建構函式

初始化物件,給物件的每個屬性進行賦值

繼承

繼承每個類都有「相同的」屬性標識和行為特性,非特有的表現形式;子類/派生類「繼承」父類/基類。作用

減少類中的冗餘**;類與類之間產生關係,為「多型」打下基礎。

特性單根性:子類僅可以繼承乙個父類;傳遞性:無限極繼承。

static void main(string args)

;for (int i = 0; i < a.length; i++)

console.readkey();

} abstract class animal

public void drink()

}class cat : animal

class dog : animal

裡式轉換

子類賦值給父類;父類中裝子類的物件,但是不可以使用子類的成員,因此將父類轉變為物件的子類物件。

關鍵字is:返回bool型別,指示是否可以做這個轉換;as:轉換成功,則返回物件,否則返回null。

作用子類看做父類,針對父類進行程式設計,寫出多個子類通用的**。

static void main(string args)

//else

//student s = person as student;//將person轉換為student物件

if (s != null)

else

console.readkey();

}

多型

多型不同物件接收到相同訊息時,會產生不同的行為(有聯絡:虛函式和抽象類;無聯絡:實現介面);同乙個類在不同場合下回產生不同的行為特性(父類呼叫子類的不同函式)

作用 不同的子類物件都當做父類來看,可以遮蔽不同子類物件之間的差異,寫出同用的**;

涵蓋虛方法:virtual override;抽象類:abstract override (在繼承特性的基礎上進行了擴充,具有相同的屬性以及行為但是可以實現不同的表現形式)。-----------(虛方法和抽象類兩者解決裡式轉換後必須強轉為子類物件才可以使用子類的方法)

備註:父類沒有辦法確定子類如何實現方法(減少耦合);子類繼承父類,必須重寫這個抽象父類的所有抽象成員。

//一、裡式轉換和虛方法的區別
class program

; //for (int i = 0; i < emps.length; i++)

////else if (emps[i] is programmer)

////else

//// emps[i].daka();

//}//虛方法實現以下方式employee emp = new programmer();//new manager(); //new employee();

emp.daka();

console.readkey();

}}class employee

}class manager : employee

}class programmer : employee

}}

//二、抽象類的使用方式
class program

}abstract class animal

class dog : animal

}class cat : animal

}

C 物件導向三大特性

封裝就是將成員變數和成員方法等集合在乙個個的類中,通過給類及類中的成員變數 屬性和方法設定不同的訪問修飾符 public protected internal protected internal private 來控制它們的作用範圍,使用時呼叫它的方法,或者給它的變數賦值。封裝的意義在於保護或者防...

高階物件導向

最基本的物件導向寫法 建立建構函式 function aaa 構造方法 aaa.prototype.showname function 使用 建立例項 var a1 new aaa a1.showname 在js原始碼中 系統物件也是基於原型的程式 function array array.prot...

物件導向三大特性

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