逐步解說:定義類別 (Visual Basic)
這個逐步解說會示範如何定義類別,然後您就可從類別來建立物件。 同時也顯示如何將屬性和方法加入至新類別,並示範如何初始化物件。
注意事項 |
---|
您的電腦對於下列指示中某些 Visual Studio 使用者介面項目的名稱或位置,可能會顯示不同的資訊:您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱<Visual Studio 中的自訂開發設定>。 |
若要定義類別
按一下 [檔案] 功能表上的 [新增專案] 來建立專案。 [新增專案] 對話方塊隨即出現。
從 Visual Basic 專案範本清單中選取 [Windows 應用程式],以顯示新的專案。
按一下 [專案] 功能表中的 [加入類別],在專案中加入一個新的類別。 [加入新項目] 對話方塊隨即出現。
選取 [類別] 範本。
將新的類別命名為 UserNameInfo.vb,然後按一下 [加入] 以顯示新類別的程式碼。
Public Class UserNameInfo End Class
注意事項 您可以使用 Visual Basic 的 [程式碼編輯器],在新類別的名稱之前輸入 Class 關鍵字,將類別加入至啟動表單中。[程式碼編輯器] 會自動提供對應的 End Class 陳述式。
將下列程式碼加入到 Class 和 End Class 陳述式之間,以定義類別的私用欄位:
Private userNameValue As String
將欄位宣告為 Private,表示只能在該類別內使用它。 您可以使用存取修飾詞 (例如 Public),提供範圍更廣的存取,使這些欄位變成可以從此類別的外部使用。 如需詳細資訊,請參閱 Visual Basic 中的存取層級。
加入下列程式碼以定義類別的屬性:
Public Property UserName() As String Get ' Gets the property value. Return userNameValue End Get Set(ByVal Value As String) ' Sets the property value. userNameValue = Value End Set End Property
加入下列程式碼以定義類別的方法:
Public Sub Capitalize() ' Capitalize the value of the property. userNameValue = UCase(userNameValue) End Sub
加入名為 Sub New 的程序,以定義新類別的參數化建構函式:
Public Sub New(ByVal UserName As String) ' Set the property value. Me.UserName = UserName End Sub
在建立以此類別為基礎的物件時,會自動呼叫 Sub New 建構函式。 這個建構函式會設定保存使用者名稱的欄位值。
若要建立一個按鈕來測試類別
以滑鼠右鍵按一下 [方案總管] 中的啟動表單名稱,再按一下 [設計工具檢視],將此表單變更為設計模式。 根據預設,Windows 應用程式專案的啟動表單名稱為 Form1.vb。 然後,主要表單隨即出現。
在主表單中加入一個按鈕,並按兩下此按鈕,以顯示 Button1_Click 事件處理常式的程式碼。 加入下列程式碼以呼叫測試程序:
' Create an instance of the class. Dim user As New UserNameInfo("Moore, Bobby") ' Capitalize the value of the property. user.Capitalize() ' Display the value of the property. MsgBox("The original UserName is: " & user.UserName) ' Change the value of the property. user.UserName = "Worden, Joe" ' Redisplay the value of the property. MsgBox("The new UserName is: " & user.UserName)
若要執行您的應用程式
按 F5 鍵以執行您的應用程式。 在表單上按一下按鈕以呼叫測試程序。 它會顯示一則訊息,說明原始的 UserName 是 "MOORE, BOBBY",因為程序呼叫了物件的 Capitalize 方法。
按一下 [確定] 來解除訊息方塊。 Button1 Click 程序會變更 UserName 屬性值,並顯示一則訊息,表示 UserName 的新值是 "Worden, Joe"。