將方法加入類別
更新:2007 年 11 月
在本課程中,您將學習如何加入方法至類別中,讓它能夠執行動作。
在先前的課程詳述:了解屬性、方法和事件。您在模型化真實物件:建立第一個類別課程中建立的 Persons 類別代表一個人。由於人可以執行許多動作,因此就 Persons 類別而言,這些動作可以表示為類別方法。
類別方法
類別方法只是在類別內所宣告的 Sub 或 Function 程序。例如,Account 類別可能會有稱為 Recalculate 的 Sub 程序,會更新餘額,或者有 CurrentBalanceFunction 程序可傳回最新的餘額。宣告這些方法的程式碼可能會如下所示:
Public Sub Recalculate()
' add code to recalculate the account.
End Sub
Public Function CurrentBalance(ByVal AccountNumber As Integer) As Double
' add code to return a balance.
End Function
雖然大部分類別方法是公用的,您也可能要加入只能由類別本身使用的方法。例如,Persons 類別本身可能就有計算一個人年紀的函式。如果將宣告函式為 Private,就不能從類別之外看見或呼叫。
私用函式的程式碼可能會如下所示:
Private Function CalcAge(ByVal year As Integer) As Integer
CalcAge = My.Computer.Clock.LocalTime.Year - year
End Function
您可以在稍後變更計算 CalcAge 值的程式碼,而方法仍可正常運作,毋需變更使用該方法的任何程式碼。隱藏執行方法的程式碼稱為「封裝」(Encapsulation)。
在 Persons 類別中,您將建立傳回完整名稱的公用方法,以及計算年紀的私用函式。
試試看!
若要將方法加入至類別
開啟您在上一個課程中所建立的 Persons 專案。如果您並未儲存該專案,必須先回到上一個課程:將屬性加入類別,並完成課程中的程序。
選取 [方案總管] 中的 [Persons.vb],然後按一下 [檢視] 功能表中的 [程式碼]。
將以下程式碼加入至屬性程序中。
Public Function FullName() As String If middleNameValue <> "" Then FullName = firstNameValue & " " & middleNameValue & " " _ & lastNameValue Else FullName = firstNameValue & " " & lastNameValue End If End Function
Private Function CalcAge(ByVal year As Integer) As Integer CalcAge = My.Computer.Clock.LocalTime.Year - year End Function
修改 Age 屬性程序中的程式碼,以便使用私用函式。
ReadOnly Property Age() As String Get ' Age = My.Computer.Clock.LocalTime.Year - birthDateValue Age = CalcAge(birthYearValue) End Get End Property
按一下 [檔案] 功能表上的 [全部儲存],儲存您的工作。
後續步驟
在本課程中,您學會如何將公用和私用方法加入至類別。您可以在詳述:使用多載建立相同方法的多重版本中進一步了解方法,也可以繼續進行下一個課程,學習如何將事件加入至類別。
下一個課程:將事件加入類別。