訪問權(quán)限控制
1.private私有的
? ? ? ? private修飾的類型是私有成員信柿,只能在類型內(nèi)部方位,超出這個(gè)范圍就不能訪問了醒第,派生類也不能方位基類的私有成員渔嚷。
2.protected受保護(hù)的
? ? protected描述類型或者成員是受保護(hù)的,只有類型內(nèi)部或從其派生類可以訪問他稠曼,超出這個(gè)范圍就不能訪問了形病。
3.internal 內(nèi)部的
internal描述的是程序集內(nèi)部的,只能在程序內(nèi)部可見,其效果等價(jià)于“public”窒朋;而在程序外部是不可見的搀罢,其效果等價(jià)于“private”。
4.public公開的
public描述是公開的侥猩,在任何地方都能訪問榔至。
類型樣式
1 static class靜態(tài)類
? ? static修飾標(biāo)識(shí)靜態(tài)類型,靜態(tài)類型的所有成員必須標(biāo)記為靜態(tài)的欺劳,否則會(huì)出現(xiàn)變異錯(cuò)誤唧取。
2 abstract class 抽象類
? ? 抽象類是一種介于類和接口之間的類型,定義為抽象類說明其有部分內(nèi)容尚未實(shí)現(xiàn)划提,有待以后被繼承枫弟,被擴(kuò)展。
語法
//抽象類
public abstract class MyAbstractClass
{
//抽象方法
public abstract int Sum(int a, int b);
public int Div(int a, int b){
? ? rerurn a/b;
}
}
繼承實(shí)現(xiàn)抽象方法
public class MyClassFromMyAbstractClass : MyAbstractClass
{
? ? public override int Sum(int a, int b)
{
? ? return a + b;
}
}
3.sealed class密封類
密封類可以繼承自其它類鹏往,但是不能被繼承淡诗,不能包含虛方法和抽象方法。
類型成員
例子類
public class PeopleClass
{
? ? //靜態(tài)構(gòu)造函數(shù)
? ? static PeopleClass()
? ? {
? ? ? ? //構(gòu)造器初始化方法
? ? }
? ? //無參構(gòu)造函數(shù)
? ? public PeopleClass(){
? ? ? ? //構(gòu)造器初始化方法
? ? }
? ? public PeopleClass(string name,string code){
? ? ? ? _Code = code;
? ? ? ? _Name = name;
? ? }
? ? //字段
? ? private string _Code = null;
? //屬性
? ? public string Code{
? ? ? ? get{
? ? ? ? ? ? return _Code;
? ? ? ? }
? ? ? ? set{
? ? ? ? _Code = value;
? ? ? ? }
? ? }
? ? //字段
? ? private string Name = null;
? ? //屬性
? ? public string Name{
? ? ? ? get{
? ? ? ? ? ? return _Name;
? ? ? ? }
? ? ? set{
? ? ? ? _Name = value;
? ? ? ? }
? ? }
? ? //方法
? ? public override string ToString(){
? ? ? ? return _Code + " " + _Name;
? ? }
? ? ? private void RaiseNameChangedEvent(){
? ? ? ? if (NameChanged != null){
? ? ? ? ? ? NameChanged(this,null);
? ? ? ? }
? ? //事件
? ? public event EventHandler NameChanged = null;
}
1構(gòu)造函數(shù)
構(gòu)造函數(shù)與類型同名的方法稱為類型的構(gòu)造函數(shù)伊履。構(gòu)造函數(shù)沒有任何返回值韩容,構(gòu)造函數(shù)可以帶參數(shù),可以定義可用范圍唐瀑。
若代碼中沒有任何構(gòu)造函數(shù)群凶,系統(tǒng)會(huì)默認(rèn)定義一個(gè)無參公開構(gòu)造函數(shù)
2字段
上述代碼中的private string _Code = null; 定義了一個(gè)字段。
3屬性
? ? public string Name{? ? ? ? get{? ? ? ? ? ? return _Name;? ? ? ? }? ? ? set{? ? ? ? _Name = value;? ? ? ? }? ? }
get定義代碼如何獲得屬性值哄辣,set定義如何保存屬性值请梢。
關(guān)鍵字value是一個(gè)默認(rèn)參數(shù),代表重外界傳入的需要保存的值力穗。只有在set塊中value才是關(guān)鍵字毅弧。其他地方為標(biāo)識(shí)符。
4方法
方法和C語言的函數(shù)相似当窗,例如
public override string ToString(){
? ? return _Code + " " + _Name;
}
方法傳入的參數(shù)可以有修飾符
具體類型如下
1.無修飾符? ? 對(duì)于值類型的參數(shù)按值傳遞形真,在方法體內(nèi)修改參數(shù)值不會(huì)影響方法外的參數(shù)變量值。
2.out? 說明該參數(shù)包含了方法的運(yùn)算結(jié)果超全,此時(shí)參數(shù)是按引用傳遞的咆霜,而且在方法體內(nèi)必須設(shè)置好參數(shù)值。在方法體內(nèi)修改參數(shù)值會(huì)傳導(dǎo)到方法體外用作方法產(chǎn)變量的值
3.ref? 參數(shù)是按引用傳遞的嘶朱。在方法體內(nèi)修改參數(shù)值會(huì)傳導(dǎo)到方法體外用方法參數(shù)的變量的值蛾坯。但方法體不強(qiáng)制修改參數(shù)值,可以修改也可以不修改疏遏。
5事件
待續(xù)