一周學會C (類二)

2021-04-17 00:53:35 字數 1761 閱讀 7074

一周學會

c#(類二)

5.例項字段

·例項字段...

w在所有的建構函式中被初始化為預設值(0/false/null

w可以在一建構函式中顯式初始化

w可以在它們宣告時初始化

sealed class pair

...

private int x;

private int y = 42;

}

回憶一下:在結構的自定義建構函式必須顯式初始化類中的所有例項字段。結構的例項字段只能在建構函式中進行初始化,而不能使用賦值的方法。

而類則比結構方便的多。

類中的所有欄位都預設初始化為預設值。

在類的建構函式中,你可以在字段宣告時進行初始化。

在上面的例子中,建構函式的引數y用字段y來賦值。編譯器通過的原因是字段y已經被賦初值。其實,如果沒有對欄位y進行初始化,編譯器仍然會通過,困為字段y已有預設值0,所以在建構函式中沒有顯式初始化欄位y是不會發生錯誤的。

6.靜態字段

·靜態字段

...

w被預設初始化為0/false/null

w可以在宣告時初始化

w只能通過類名訪問

class pair

private static pair origin = new pair(0,0);

...

private int x, y;

pair p = new pair();

...

method(p.origin);//

錯誤,只能通過類名訪問

method(pair.origin); //正確

由static修飾符宣告的字段稱為靜態變數。當類的宣告裝載時,靜態變數就開始存在,直到程式結束時才消失。

靜態變數的初值:

l整型變數為0(包括列舉)

l實型變數為0.0

lbool型變數為false

l引用型變數為null

7.唯讀字段

·唯讀字段

...

w不能被賦值

w不能被用作ref/out

型引數

class pair

public void reset()

private readonly int x, y;

}

一周學會C (屬性一)

一周學會 c 屬性一 1.問題 struct time public void sethour int value private int hour,minute,second static void main 封裝把一些不重要的細節隱藏起來,這樣你可以集中精力處理那些重要的內容。但封裝很難被掌握,...

一周學會C (列舉一)

一周學會 c 列舉一 1.型別 值型別 w變數直接包含它們自己的資料 w區域性變數總是放在棧 stack 中 引用型別 w變數間接指向它們的資料 w區域性變數指向堆 heap 中的物件 列舉 enum 值型別 結構 struct 值型別 類 class 引用型別 介面 inte ce 引用型別 陣列...

一周學會C (值的型別二)

一周學會 c 值的型別二 4.連線 規則1 w除了賦值操作符外的其他二元操作符都是左連線的。x y z 應理解為 x y z 規則2 w賦值操作符和?操作符是右連線的。x y z 應理解為x y z x y z 應理解為x y z a?b c?d e 應理解為a?b c?d e 5.計算時的順序 運...