一、C#提供對面向對象編程(Object Oriented Programming)的完整支持;類描述對象的類型,而對象是類的具體實例,創建對象的過程也被稱為實例化(Instantiation);通常使用new運算符來創建對象: ※其中()實際上代表的是調用類的預設構造函數來構建類的實例; ※C#還 ...
一、C#提供對面向對象編程(Object Oriented Programming)的完整支持;類描述對象的類型,而對象是類的具體實例,創建對象的過程也被稱為實例化(Instantiation);通常使用new運算符來創建對象:
new MyType();
※其中()實際上代表的是調用類的預設構造函數來構建類的實例;
※C#還提供了類的輕量版本,稱為結構,當需要創建大量對象但不希望因此占用太多記憶體時,可以使用結構;
※一般來說,類用於較複雜的行為或在對象創建後頻繁修改值的數據結構,結構用於較簡單的行為或在對象創建後較少修改值的數據結構;
1.定義(Define)一個命名為MyType的類或結構,那麼MyType就是類型的名稱,聲明(Declare)MyType類型的變數myObj,初始化(Initialize)myObj變數為新創建的對象或其它同為MyType類型且不為空的變數,那麼變數myObj就指向了MyType類型的一個對象:
MyType myObj = new MyType();
二、面向對象編程的三大特性:封裝,繼承,多態,其中,類完整的支持這三大特性,結構則只支持封裝,不支持繼承和多態:
1.封裝,是把客觀事物封裝成抽象的類,類可以把數據和行為只讓可信的類或對象操作,對不可信的進行隱藏;封裝是面向對象的特征之一,是類和對象概念的主要特性; 簡單的說,一個類就是一個封裝了數據以及操作這些數據的行為的邏輯實體,某些數據和行為可以是私有的,不能被外界訪問,通過這種方式,對象對內部數據和行為提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了對象的私有部分;
2.繼承,是可以使用現有類的所有功能,併在無需重新編寫原來的類的情況下對這些功能進行擴展的能力; 通過繼承創建的類稱為子類或派生類,被繼承的類稱為父類或基類;繼承的過程,就是從一般到特殊的過程;要實現繼承,可以通過繼承和組合(Composition)來實現;繼承概念的實現方式有兩種:實現繼承是指直接使用基類的方法而無需額外編碼的能力;介面繼承是指僅使用方法的名稱,但是子類必須提供實現的能力;
3.多態,是允許將派生類對象賦值給其基類變數的技術,賦值之後,基類變數就可以根據當前賦值給它的派生類對象的類型以不同的方式運作;簡單的說,就是允許將派生類類型的指針賦值給基類類型的指針;
三、面向對象設計的五大基本原則 :S.O.L.I.D
1.單一職責原則(SRP,Single Responsibility Principle):一個類應該有且只有一個去改變它的理由,這意味著一個類應該只有一項工作;
2.開放封閉原則(OCP,Open-Close Principle):對象應該對擴展開放,對修改封閉,這就意味著一個類應該無需修改類本身但卻容易擴展;
3. 里氏替換原則(LSP,Liskov Substitution Principle):在對象x為類型T時q(x)成立,那麼當S是T的派生類時,對象y為類型S時q(y)也應成立,即對基類的調用同樣適用於派生類,每一個基類實例都應該可以替換成它們的派生類實例;
4.介面分離原則(ISP,Interface Segregation Principle):不應強迫客戶端實現一個它用不上的介面,或是說客戶端不應該被迫依賴它們不使用的方法;
5.依賴反轉原則(DIP,Dependency Inversion Principle):對象必須依靠抽象而不是具體實現,它表示高層次的模塊不應該依賴於低層次的模塊,它們都應該依賴於抽象;
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的認可是我寫作的最大動力!
作者:Minotauros
出處:https://www.cnblogs.com/minotauros/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。