Class 陳述式 (Visual Basic)
宣告類別的名稱,並導入類別所包含之變數、屬性、事件和程序的定義。
語法
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
組件
詞彙 | 定義 |
---|---|
attributelist |
選擇性。 請參閱屬性清單。 |
accessmodifier |
選擇性。 可以是下列其中一項: - 公開 - Protected - Friend - 私用 - Protected Friend - Private Protected 請參閱 Access levels in Visual Basic。 |
Shadows |
選擇性。 請參閱 Shadows。 |
MustInherit |
選擇性。 請參閱 MustInherit。 |
NotInheritable |
選擇性。 請參閱 NotInheritable。 |
Partial |
選擇性。 指定類別的部分定義。 請參閱 Partial。 |
name |
必要。 此類別的名稱。 請參閱 Declared Element Names。 |
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 中的<重新實作>。預設屬性。 類別最多可指定一個屬性作為其預設屬性。 如需詳細資訊,請參閱預設。
行為
存取層級。 在類別中,您可以使用成員自己的存取層級來宣告每個成員。 除了變數和常數的預設存取為 Private 存取之外,類別成員的存取預設為 Public。 當類別的存取限制較其任何成員更為嚴格時,會優先採用類別存取層級。
[範圍]。 類別含括在其包含命名空間、類別、結構或模組的範圍內。
每個類別成員的範圍都是整個類別。
存留期。 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