關於C 的一些小知識

2022-03-28 19:15:59 字數 2183 閱讀 5164

不行,

可以這樣理解

static修飾的方法可以直接用類名呼叫

非static修飾的方法必須用類new出物件才能呼叫

當我們用類名直接呼叫時,可能這個類的物件並沒有new。

如果這時候static方法裡呼叫非static的方法就會出現空指標異常,

當然這種錯誤編譯時就不會通過。

錯誤**演示:

1

class

program211

12static

void main(string

args)

1318 }

正確**演示:

1

class

program211

12static

void main(string

args)

1318 }

是的,必須全部繼承。

我寫乙個介面:

1

namespace

結構測試

28 }

我在控制台去實現這個介面的第乙個方法,看看情況:

1

namespace

結構測試29

10public

void

first()

1114

1516

}17 }

執行,結果報錯:

為什麼要寫抽象類?所謂抽象不就是把某些物體的共同特點集合起來嗎?比如你可以吃飯,睡覺,學習。你的同學也可以吃飯,睡覺,學習。好了,你們都具有這些共同的特徵,不只是你們,所有的人都這樣,這就可以抽象出乙個類--person。那麼抽象類該怎麼用呢?

抽象類class1:

1

namespace

抽象類210}

11 }

class1這個抽象的類我給他寫了兩個方法,乙個是抽象方法start,乙個是非抽象方法update.注意到了沒,抽象方法是不允許有方法體的。

下面我們再來寫乙個普通的類class2來繼承抽象類class1:

1

namespace

抽象類2

9public

void

strt()

10 13}

14 }

可以看到,抽象類class1裡面的抽象方法start被繼承並重構了方法體,而且非抽象方法update也可以直接繼承。

下面來控制台應用程式:

1

namespace

抽象類211}

12 }

普通類class2例項化了乙個物件jj,然後jj可以呼叫start方法和strt方法。

注意事項:抽象類不能例項化。抽象方法不能有方法體。

先上圖,咱們看圖說話。

比如我最初定義了乙個字串s,初始值為 "蜀雲泉" 。

1

string s = "

蜀雲泉";

我們可以看到這個字串s的內容是存放在堆裡面的,而s存放在棧裡面只是起乙個引用的作用。可以看到我在圖上s畫了一條虛線指向 「蜀雲泉」 。現在我執行新的操作:

1 s = s + "

喜歡寫部落格

";

好了,s並沒有直接在蜀雲泉那塊記憶體增加我寫的字串,而是新開闢了一塊記憶體去重新儲存。這時s指向了那塊新的儲存空間。而那個舊的儲存空間「蜀雲泉」過一段時間之後系統會自動把它清理掉。

有時候字串實在是太長了,全部寫在一行吧,既不美觀也不方便檢視,所以怎麼寫成多行呢?有兩種方法:

方法一:

string str="

字串1"+"

字串2";

方法二:

string str=@"

字串1字串2

";

int days = (int)convert.todatetime("時間").dayofweek;
週日是0,其它的數字對應。

C 的一些小知識

css中的繼承 css的單位 css 外邊距屬性 margin 網頁上字型樣式 css的font屬性 font 簡寫屬性在乙個宣告中設定所有字型屬性 其他屬性值描述 caption 定義被標題控制項 比如按鈕 下拉列表等 使用的字型。icon 定義被圖示標記使用的字型。menu 定義被下拉列表使用的...

C的一些小知識

資料型別 char 字元資料型別 short 短整型 int 整形 long 長整型 long long 更長的整形 float 單精度浮點數 double 雙精度浮點數 sizeof 求位元組大小 在32位平台下 在64位平台下 變數,常量 變數 在程式執行的時候,可以改變的量.常量 用const...

C 的一些小知識

var是乙個弱型別,可以替代任何型別 有以下四個特點 1.必須在定義時初始化 var s adcd 可以 var s s abcd 不可以2.初始化完成吼,不能給其賦型別不同的值 3.var要求是區域性變數 4.使用var定義變數和object不同,它在效率上和使用強型別方式定義變數完全一樣。注 在...