類的方法就是在類中用戶聲明的那些公有的(public)Sub或者Function過程。
例如:下面代碼就是在一個Account中加入一個Withdrawal方法,用戶可以把這個公有的函數過程加入到類模塊中去:
Public Function WithDrawal(Byval Amount As Currency,_ Byval TransactionCode As Byte) As Double '(Code to perform the withdrawal and return the 'new balance,or to raise an Overdraft error.) End Function
如果,類Account具有Balance屬性的話,用戶也可以不用返回balance的值,因為用戶可以在調用完WithDrawal函數後,非常方便地訪問balance屬性,所以用戶可以把這個函數用一個公有的過程來代替。
注意:如果發現把WithDrawal設置成過程以後,每次調用WithDrawal過程之後還要訪問一遍balance屬性值的話,那麼把WithDrawal設置成函數返回balance的值,將會更有效率一些。這是因為對於一個類的屬性而言,每次得到一個屬性的值也是在調用一個公用的函數PropertyGet,也是訪問一些公有的變量,不管PropertyGet函數是顯性聲明的,還是隱性聲明的。
在類模塊中,通過定義屬性和方法,就構成了一個類對外的接口,正如類的數據封裝性,如果用戶把一個過程聲明為私有的話,那麼它就不能構成接口的一部分。這意味著用戶可以通過改變類裡面的一些私有的內部過程,而不需要改變使用類的代碼就可以達到改變整個程序的運行變化。
更重要的是,用戶也可以通過改變公有作為類的方法的Sub或者Function過程,而不用涉及那些使用類的代碼就能改變整個程序的一些功能,正如不能改變過程的參數和函數的返回類型一樣,從外部而言,用戶也不能改變一個類的接口。
把一個類的具體情況隱藏在類的接口之外,可以認為是類的封裝性的一種表現,封裝性允許用戶在不改變使用類的代碼的情況下,提高類的一個方法的表現,或者完全改變一個類的方法的運行功能。