宣告類別的名稱,並導入類別所包含之變數、屬性、事件和程式的定義。
語法
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
組件
| 術語 | 定義 |
|---|---|
attributelist |
選擇性。 請參閱 屬性清單。 |
accessmodifier |
選擇性。 可以是下列其中一項: - 公共 - 保護 - 朋友 - 私人 - 受保護的Friend - 私人受保護 請參閱 Visual Basic 中的存取層級。 |
Shadows |
選擇性。 請參閱 陰影。 |
MustInherit |
選擇性。 請參閱 MustInherit。 |
NotInheritable |
選擇性。 請參閱 NotInheritable。 |
Partial |
選擇性。 表示類別的部分定義。 請參閱 部分。 |
name |
必須的。 這個類別的名稱。 請參閱 宣告的項目名稱。 |
Of |
選擇性。 指定這是泛型類別。 |
typelist |
如果您使用 Of 關鍵詞,則為必要項。 這個類別的類型參數清單。 請參閱 類型清單。 |
Inherits |
選擇性。 表示這個類別繼承另一個類別的成員。 請參閱 Inherits 語句。 |
classname |
如果您使用語句, Inherits 則為必要項。 這個類別衍生的來源類別名稱。 |
Implements |
選擇性。 表示這個類別會實作一或多個介面的成員。 請參閱 Implements 語句。 |
interfacenames |
如果您使用語句, Implements 則為必要項。 這個類別所實作的介面名稱。 |
statements |
選擇性。 定義這個類別成員的語句。 |
End Class |
必須的。
Class終止定義。 |
備註
Class語句會定義新的數據類型。
類別是面向物件程序設計的基本建置組塊(OOP)。 如需詳細資訊,請參閱 物件和類別。
您只能在命名空間或模組層級使用 Class 。 這表示類別的 宣告內容 必須是來源檔案、命名空間、類別、結構、模組或介面,而且不能是程式或區塊。 如需詳細資訊,請參閱 宣告內容和預設存取層級。
類別的每個實例都有與所有其他實例無關的存留期。 這個存留期是從 New Operator 子句或這類 CreateObject函式建立時開始的。 當指向 實例的所有變數都設定為 Nothing 或其他類別的實例時,它會結束。
類別預設為 Friend 存取。 您可以使用存取修飾詞來調整其存取層級。 如需詳細資訊,請參閱 Visual Basic中的存取層級。
規則
嵌套。 您可以在另一個類別內定義一個類別。 外部類別稱為 包含類別,而內部類別稱為 巢狀類別。
繼承: 如果類別使用 Inherits 語句,則您只能指定一個基類或介面。 類別無法繼承自一個以上的專案。
類別無法繼承自具有更嚴格的存取層級的另一個類別。 例如,類別
Public無法繼承自 類別Friend。類別無法繼承自其內巢狀類別。
實作。 如果類別使用 Implements 語句,則必須實作您在 中指定的
interfacenames每個介面所定義的每個成員。 這是基類成員的重新實作例外狀況。 如需詳細資訊,請參閱 Implements 中的。Default 屬性。 類別最多可以指定一個屬性做為其 預設屬性。 如需詳細資訊,請參閱 預設值。
行為
存取層級。 在類別中,您可以使用自己的存取層級來宣告每個成員。 類別成員預設為 [公用 存取],但變數和常數除外,預設為 Private 存取。 當類別具有比其中一個成員更受限制的存取時,類別存取層級會優先。
範圍。 類別在其包含命名空間、類別、結構或模組的範圍內。
每個類別成員的範圍都是整個類別。
一生 Visual Basic 不支持靜態類別。 靜態類別的功能對等功能是由模組提供。 如需詳細資訊,請參閱 Module語句。
類別成員的存留期取決於其宣告方式和位置。 如需詳細資訊,請參閱 Visual Basic中的存留期。
資格。 類別外部的程式代碼必須以該類別的名稱限定成員的名稱。
如果巢狀類別內的程式代碼對程式設計專案進行不合格的參考,Visual Basic 會先在巢狀類別中搜尋元素,然後在其包含類別中搜尋元素,依此搜尋到最外層的包含專案。
類別和模組
這些元素有許多相似之處,但也有一些重要的差異。
術語。 舊版 Visual Basic 可辨識兩種類型的模組: 類別模組 (.cls 檔案)和 標準模組 (.bas 檔案)。 目前的版本會分別呼叫這些 類別 和 模組。
共享成員。 您可以控制類別的成員是共用或實例成員。
物件方向。 類別是面向物件,但模組不是。 您可以建立類別的一或多個實例。 如需詳細資訊,請參閱 物件和類別。
範例
下列範例會使用 Class 語句來定義類別和數個成員。
Class BankAccount
Shared interestRate As Decimal
Private accountBalance As Decimal
Public holdOnAccount As Boolean = False
Public ReadOnly Property Balance() As Decimal
Get
Return accountBalance
End Get
End Property
Public Sub PostInterest()
accountBalance = accountBalance * (1 + interestRate)
End Sub
Public Sub PostDeposit(ByVal amountIn As Decimal)
accountBalance = accountBalance + amountIn
End Sub
Public Sub PostWithdrawal(ByVal amountOut As Decimal)
accountBalance = accountBalance - amountOut
End Sub
End Class