1、類是由字段資料以及操作這個資料的成員(建構函式、屬性、方法、事件等)所構成的自定義型別;其中字段資料用來表示類例項的狀態;
2、為了保護狀態資料的完整性,最好將資料字段定義為的私有的(或者受保護的),然後通過型別屬性對資料提供受控制的訪問;
3、一旦定義了自定義的建構函式,則預設建構函式會自動移除;如果想保留預設建構函式,必須在**中顯示的進行定義;
4、this關鍵字:提供對當前類例項的訪問;可以用於建構函式鏈;
eg:
在乙個類中如果需要實現多個自定義建構函式,通常做法是在建構函式中實現各自的業務邏輯,如果這些業務邏輯的實現並非截然不同的話,顯然不符合oop程式設計思想,極不利於維護,當然,我們也可以通過將相同的邏輯部分封裝成乙個方法,但還有一種更為合理簡單的方法,下面就通過this關鍵字來實現串聯建構函式做一簡單示例。
示例**如下:
public class person
public person(string name):this("evan",null)
public person(int age):this("",20)
public person(string name, int? age)
public void display()
,age:\n", personname, personage);
}
}
主函式呼叫如下:
static void main(string args)
這樣的做法就是讓乙個接受引數最多的建構函式做"主建構函式", 且在主建構函式中實現必須的業務邏輯,其餘的建構函式只要使用this關鍵字把傳入的引數**給主建構函式,並且提供必須的其它引數,這樣子,我們整個類中需要我們操心的就是那個主建構函式了,其餘建構函式基本上可以為空。
注意:如果建構函式鏈中還有實現各自的邏輯,那麼實際上是先執行主建構函式的**,再執行各自邏輯,使用這種做法,真正的工作都交給了乙個建構函式,類定義就會更簡潔、更易維護、簡化了程式設計任務。希望本文所述對大家的c#程式設計有所幫助。
5、static關鍵字(c#重點)
(1)工具類:工具類是不維護任何物件級別的狀態且並非由new關鍵字建立的類,工具類會以類級別成員公開所有功能;只包含靜態功能的類或結構稱為工具類。
(2)static關鍵字可用於:類的資料(即欄位)、類的屬性、類的方法、建構函式、整個類級別;
(3)靜態資料:類的靜態資料會被同一類的所有物件共享,且靜態資料只會被分享一次。如何改變(獲取)靜態資料呢?
(4)靜態方法:靜態方法是用來改變或獲取靜態資料的,靜態方法只能靜態成員,靜態方法引用非靜態成員會編譯出錯;
static內部只能出現static變數和其他static方法!而且static方法中還不能使用this....等關鍵字..因為它是屬於整個類!
(5)靜態建構函式:用來安全地設定靜態資料的值,靜態函式是特殊的建構函式,非常適用於初始化在編譯時未知的靜態資料的值;
(6)靜態類:靜態類只能包含靜態成員,在進行工具類設計時,經常設計成靜態類。
6、oop支柱:(1)封裝;(2)繼承;(3)多型;
(1)封裝:
利用屬性來封裝資料狀態(即利用屬性來封裝字段);
唯讀屬性和只寫屬性;
靜態屬性;
自動屬性
常量字段;
唯讀字段(readonly);
靜態唯讀字段(static readonly);
分部類(partial);
(2)繼承:
(3)多型:
它表示語言以同一種方式處理相關物件的能力。準確的說,就是基類為所有的派生類定義乙個成員集合,這個成員集合稱為多型介面。多型介面由任意個虛擬或抽象成員組成。當派生類重寫基類定義的成員是,其實就重定義了相應相同請求的不同方式。
OC語言5 封裝
物件導向的三大特性 封裝 成員變數 繼承和多型 在oc語言中,使用 inte ce和 implementation來處理類。inte ce就好像暴露在外面的時鐘表面,像外界提供展示以及介面。implementation就好像隱藏在時鐘內部的構造實現,把具體的實現封裝了起來。在開發過程中,考慮到安全性...
C 核心5 封裝
c 物件導向的三大特性為 封裝 繼承 多型 物件 屬性和行為。封裝的意義 1.將屬性和行為作為乙個整體,表現生活中的事物 2.語法 class 類名 例1 設計乙個圓的類,要求這個圓的周長 const double pi 3.14 class circle double field void cir...
C 學習筆記(5) 封裝 繼承 多型
封裝 每個物件都能包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來完成自己的操作。封裝的好處 l 良好的封裝能夠減少耦合。l 類內部的實現可以自由地修改。l 類具有清晰的對外介面。繼承 物件的繼承代表了一種 is a 的關係,如果兩個物件a和b,可以描述為 b是a 則表...