C 學習筆記(五) 類成員的定義

2021-04-02 19:06:41 字數 2796 閱讀 5029

一、定義域

標準的宣告格式:

class myclass

這種宣告格式的成員是可以對其進行初始化的。但是它是

myclass

的公有成員,可在例項化

myclass

的物件後進行初始化或修改操作。

myclass myclass =

new myclass();

myclass.myint =

1;

域(成員)也可以使用

readonly

關鍵字宣告,表示這個域(成員)只能在執行建構函式的過程中賦值,或由初始化賦值語句賦值。

class myclass}或

class myclass

如果我們使用關鍵字

static

將域宣告為靜態。

class myclass

我們要訪問這個域(成員)則只能通過定義它的類來訪問,通過類的物件例項是訪問不到的。

myclass.myint =

10;

console.writeline("",myclass.myint);

二、定義方法

方法的使用和域基本一樣,同樣在使用了

static

關鍵字後,這個方法就只能通過類來訪問,不能通過物件例項來訪問。 例

1:

class myclass

}myclass myclass =

new myclass();

console.writeline("",myclass.getstring());

例2:

class myclass

}console.writeline("",myclass.getstring());

但在方法的定義中,還可以使用以下幾個關鍵字:

virtual

:方法可以重寫。

abstract

:方法必須重寫(只用於抽象類中)。

override

:方法重寫了乙個基類方法(如果方法被重寫,就必須使用關鍵字)。

extern

:方法定義放在其他地方。

下面展示乙個過載的例子:

public

class mybaseclass

}public

class myderivedclass : mybaseclass

}class class1

",oldthing.dosomething());

myderivedclass newthing =

new myderivedclass();

console.writeline("",newthing.dosomething());

} }

執行結果為:

我們在重寫或定義方法的同時,如果使用了

override

關鍵字,那麼我們也可以同時使用

sealed

關鍵字。使得派生類不能對此方法進行過載。大家請看下圖:

我們在定義

myderivedclass

類中的dosomething

方法時沒有使用sealed關鍵字,所以我們可以在它的派生類testoverride中過載這個方法。繼續往下看:

這時,我們在定義

myderivedclass

類中的dosomething

方法使用了sealed關鍵字,實現了將這個方法進行密封,使得其派生類不能對這個方法進行過載。

三、定義屬性

屬性擁有兩個類似於函式的塊,乙個塊用於獲取屬性的值,另乙個塊用於設定屬性的值。忽略get塊建立只寫屬性,忽略set塊建立唯讀屬性。

private

int intval;

public

int val

set

}

c 經典入門學習筆記 定義類成員

基本語法部分 成員的訪問級別確定成員的使用範圍,常用下面的關鍵字 public 成員可以由任何 訪問 private 只能由類中的 訪問 internal 只能由定義它的專案內部的 訪問 protected 成員只能由類或派生類中的 訪問 欄位的定義 class myclass 如果該屬性是唯讀的,...

C 筆記(五) static類成員

在設計乙個類的時候,我們希望某些屬性是所有物件共用的,而不是不同物件有不同地屬性。那我們可以使用static關鍵字進行宣告,使這個類成員變成靜態成員。例如 存在銀行裡的錢,都有相同的利息,不會因為賬戶的不同而利息不同。我們在生成銀行賬戶這個物件時,此時就希望它的利息這個成員是共用的。static關鍵...

學習C (十)定義類成員

在類定義中,也提供該類中所有成員的定義,包含字段 方法和屬性。所有成員都有自己的訪問級別,用下面的關鍵字之一來定義 public 成員可以由任何 訪問 private 成員只能由類中的 訪問 如果沒有使用任何關鍵字,就預設使用這個關鍵字 internal 成員只能由定義它的程式集 專案 內部的 訪問...