C#附加修飾符

static:

類成員:

類成員由static關(guān)鍵字修飾

特點:

可以在未創(chuàng)建類的對象前就用類名直接調(diào)用類成員

類變量:

由static關(guān)鍵字修飾的字段

特點:

隸屬于類模板(共用)

直接使用類名.訪問

注意:無法使用對象引用.

類方法:

由static關(guān)鍵字修飾的方法

特點:

隸屬于類模板

直接使用類名.訪問

注意:

無法使用對象引用.

方法中不能使用this、base

靜態(tài)構(gòu)造函數(shù):

static 類名(){}

用處:初始化static變量

特點:

每個類中都有此方法

不可被直接調(diào)用

使用類時自動執(zhí)行

運行期間只執(zhí)行一次

靜態(tài)類:

由static修飾的類

特點:

不能實例化(沒有對象)

共享

使用類名.訪問內(nèi)容

原則:

靜態(tài)類中的所有成員必須是靜態(tài)的

示例:

public static class StaticTestClass

{

???public static int n = 0;

???public static void Add()

???{

???????n++;

???}

}

類內(nèi)部調(diào)用關(guān)系

一.多類的加載次序

1.優(yōu)先加載Main所在的類

2.執(zhí)行Main方法

3.執(zhí)行過程中使用到哪個類 加載哪個類

二.單個類的加載次序

1.加載類中的靜態(tài)變量 靜態(tài)方法

2.執(zhí)行靜態(tài)構(gòu)造為靜態(tài)變量進行初期化

3.當產(chǎn)生對象new對象時 分配成員變量和成員方法到對象中

注意:

非靜態(tài)的可以調(diào)用靜態(tài)和非靜態(tài)

靜態(tài)的只能調(diào)用靜態(tài)的

abstract:

抽象類:

抽象的意義:

描述抽象的概念,規(guī)定必須實現(xiàn)的方法的統(tǒng)一接口

用abstract關(guān)鍵字來修飾的類

abstract class AbstractClass

{

}

特點:

必須被繼承才可使用

不能被直接實例化

和密封類(sealed類)正好相反

抽象方法:

用abstract來修飾的方法

abstract returnType AbstractMethod ( [paramlist] );

特點:

必須被重寫(override)

只有方法頭,沒有方法體

抽象方法必須在抽象類中

規(guī)定:

1.抽象類中不一定包含抽象方法

2.有抽象方法的類必定是抽象類

3.抽象方法只是聲明,沒有方法的實現(xiàn)

4.構(gòu)造方法、類方法不能聲明為抽象方法

5.子類必須實現(xiàn)抽象方法,除非子類也是抽象類

6.抽象類中不一定全是抽象方法 可以有一部分具體實現(xiàn)

sealed:

被sealed修飾的類被稱為密封類

sealed class SealedClass

{

}

特性:密封類不能被繼承

被sealed修飾的方法被稱為密封方法

sealed override returnType SealedMethod([paramList])

{

}

特性:

密封方法會重寫基類中的方法

密封方法無法被重寫

注意:必須始終與override一起使用

被sealed修飾的屬性被稱為密封屬性

sealed override returnType Property

{

set ???

{

}

get

{

}

}

特性:

密封屬性會覆蓋基類中的屬性

密封屬性無法被覆蓋

注意:必須始終與override一起使用

const&readonly:

const :

定義的是靜態(tài)常量

聲明的同時賦值

運行期間不能改變它的值

屬于編譯時常量

不能用new初始化

const一般修飾值類型和String

Readonly :

是只讀變量

屬于運行時變量

可以在類constructor里改變它的值

不能作用于局部變量

初始化時機:

1.聲明的同時賦值

2.靜態(tài)變量的話 在靜態(tài)構(gòu)造中初始化

3.非靜態(tài)變量的話 在非靜態(tài)構(gòu)造中初始化

小結(jié):

主要是幾個重要關(guān)鍵字的使用:

static、abstract、sealed、const、readonly

學習的時候要從這幾個關(guān)鍵字可以修飾的內(nèi)容分類學習

static可以修飾類、方法、變量

abstract可以修飾類、方法

sealed可以修飾類、方法

const可以修飾變量(通常修飾值類型+String)

readonly可以修飾變量(通常修飾引用類型)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容