黑馬程序員——類,訪問修飾符,屬性,構造方法,命名空間,類圖,params

------- Windows Phone 7手機開發.Net培訓、期待與您交流! -------

l 類是抽象的概念,僅僅是模板,比如說:”人”類.

l 對象是一個你能夠看得到、摸得着的具體實體

l “人”類都有:姓名\性別\年齡 屬性,有說話的方法。

l 張三是一個對象,他的姓名屬性的值:張三 性別的屬性的值:男 年齡屬性的值:20 張三會說話。

l 對象可以叫做類的實例(instance)。

l 類不佔內存,對象才佔內存。

定義類的語法:

[訪問修飾符]class 類名

{

成員;

。。。。。。
}

在我們自己寫的類中,我們在寫方法時,先不用加static

下面我們定義了一個叫Person的類,這個類僅僅是人這個對象的模板。

在這個模板中規定人類對象都應該有姓名,性別,年齡屬性,和SayHello的方法。

如何通過一個類來產生一個對象呢?

通過類來產生一個對象的過程,叫類的實例化。

類的實例化:

類名 實例名 = new 類名();

Person zsPerson;//定義了一個變量,這個變量的類型時Person類型。

zsPerson = new Person();//通過new關鍵字來產生一個Person對象,此時佔用了一塊空間。

zsPersonlsPerson是實例名。

訪問類的屬性:

實例名.屬性名

訪問類的方法:

實例名.方法名()

只要沒有加static的方法或屬性,都必須先實例化,再通過實例名.方法名或者實例名.屬性來訪問。

static的方法或屬性,可以直接通過 類名.方法名或類名.屬性來訪問。

訪問修飾符:

public:可以再任意地方被訪問

internal:只能在本項目中被訪問

private:只能在本類中被訪問

protected:只能在本類和子類中被訪問

在類這個級別,不寫訪問修飾符默認爲internal

在一個類中定義變量或者方法時,沒有寫訪問修飾符,則默認爲private

屬性:

通俗點說,就是定義一個public的具有get/set方法的變量。這個變量時用於保護一個私有變量。

l 屬性是爲了保護與之相對應的字段的.保證對字段的讀取和賦值符合要求.

l 屬性可分爲:讀寫、只讀、只寫。

l 允許外部訪問的變量一定要聲明爲屬性。

讀寫屬性:具有set/get方法的屬性

只讀屬性:只有get方法的屬性。這個屬性只能讀取,不能寫入。

只寫屬性:只有set方法的屬性。這個屬性只能寫入,不能讀取。(用的很少)

當我們實例化一個類時,系統會自動對這個類的屬性進行初始化。

數字類型初始化成0/0.0

string類型初始化成:null

char類型初始化成:\0

構造方法:

使用構造方法的好處:

l 對多個屬性進行復制時,不需要重複的寫實例名。

l 可以保證用戶在new一個對象的時候必須對某個屬性進行賦值。

l 和第2類似,在創建對象時,對只讀屬性進行初始化。

當我們定義好一個類後,如果我們沒有寫構造方法,那麼系統會自動給我們加一個默認的無參數的構造方法。在這個構造方法中什麼也不做,我們也看不到。

我們可以自定義一個構造方法:

自定義一個構造方法後,不再有默認的無參構造方法。如果需要自己寫一個。

構造方法是一個特殊的方法,她的名字和類的名字相同,並且沒有返回值。連void都得省略。

構造方法用來創建對象,即在構造方法中對對象進行初始化。

構造方法也可以重載,也就是有多個參數不同的構造方法。

命名空間:

l namespace(命名空間),用於解決類重名問題,可以看做“類的文件夾”。

l 如果代碼和被使用的類在一個namespace則不需要using

l 在不同命名空間下的類調用有兩種方法:1.寫全稱 命名空間.類名 2.using引用命名空間,再調用。

l 命名空間是邏輯上的劃分,不是物理上的劃分。

類圖:

“—”表示是私有的屬性。private

+”表示公有的屬性。public

下圖是.net中的類圖。

析構函數(*):清理垃圾用的函數,在C#中不需要了,已經有了垃圾回收機制。

l 不能在結構中定義析構函數。只能對類使用析構函數。

l 一個類中只能有一個析構函數。

l 無法繼承或重載析構函數。

l 無法調用析構函數。它們是被自動調用的。

l 析構函數即沒有修飾符,也沒有參數。

和構造函數(方法)類似。

是最後一個被調用的方法。

params

params可以把n個參數變成一個數組參數。

可變數組必須作爲最後一個參數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章