C 學習筆記(三)

2021-08-16 21:03:54 字數 1539 閱讀 9140

1、c#類的基本語法

[許可權修飾] class 類名

建立類的物件使用關鍵字new,例如要建立person這個類的物件,則

person p = new person();
注:結構和類的本質區別是結構是面向過程的,而類是物件導向的,結構沒有物件導向的幾大特性,例如繼承、多型等都沒有。

我們把包含在類或結構中的物件或值叫做字段,字段使得結構和類可以封裝資料,一般欄位的訪問許可權都是private的。

屬性用來對字段的賦值和取值進行保護。

注:永遠使用屬性來暴露資料,欄位都設定成private或protected,正常情況下應該對每乙個字段設定乙個屬性,來對每乙個字段進行保護。

屬性的本質就是兩個方法,乙個是get(), 乙個是set()。其中get()用來幫助外界獲取類的資料,而set()則用來協助外界對類中資料進行修改。

//person類

public class person

//控制外部獲取類中資料

set_age=value;}}

}

2、靜態與非靜態的區別

靜態資料或方法在記憶體中是佔據空間的,一旦宣告之後便有了實體,所以在呼叫靜態資料或方法的時候不需要再定義乙個類的物件來呼叫,而只需要利用類名直接來呼叫即可;對於非靜態資料或方法,由於其宣告之後並沒有在記憶體中開闢空間,其不存在實體,要對其進行呼叫,必須要先定義類的物件,由物件再來呼叫。

注:在非靜態類中,既可以有非靜態成員,也可以有靜態成員,但是靜態類中,只能有靜態成員。在靜態函式中,只能訪問靜態成員,不能訪問非靜態成員。

注:不能建立靜態類的例項物件。

在實際專案中,如果乙個類是經常被使用的,就可以考慮將該類寫成乙個靜態類。

3、建構函式

幫助初始化物件

1)、建構函式沒有返回值

2)、建構函式名必須與類名一致

3)、建構函式的訪問許可權必須是public

public class person

//注意構造函式引數時傳

//遞給物件的屬性,而不

//是直接給字段

private string _name;

public string name

set}

}

4、new關鍵字

在利用new建立物件的過程中,實際上進行了下述三個過程

1)、在記憶體中開闢一塊空間;

2)、在開闢的空間中分別建立物件;

3)、呼叫物件的建構函式進行初始化物件;

5、this關鍵字

this關鍵字有兩個作用

1)、代表當前類的物件

2)、在類當中顯示的呼叫本類的建構函式

語法是(:this(引數))

public person(string name):this(name,'m')

{}public person(string name,char gender)

{}第乙個構造函式呼叫第二個建構函式

C 學習筆記(三)

c 運算子過載 1 過載運算子的運算順序和優先順序不變,但引數和返回型別是可以重新說明的。2 c 規定,運算子中,引數說明都是內部型別的,不能過載,如 int operator int,int 3 c 還規定了 這五個運算子不能過載,也不能創造新的運算子,如 4 c 規定 這四種運算子必須為成員形式...

C 學習筆記(三)

chapter 3 函式和類的自頂向下設計 1 乙個程式的開發過程 1.問題規範 2.分析 資料需求 3.設計 初始演算法 演算法精化 4.實現 5.測試 2 重要工具 結構圖 3 分析,設計程式時,甚至對任何問題來說,我們都要由大到小,層層分解,由乙個大問題分割成多個相關 的小問題,一口乙個蛋糕是...

C 學習筆記(三)

attributes field modifiers type variable declarators 域的修飾符field modifiers可以是 靜態域和非靜態域 下面的例子清晰的反映了二者之間的區別 域的初始化 如果在類中,沒有顯式的對域進行初始化,系統將賦予其乙個預設值。域的預設初始化分...