VBA类 访问权限

成员权限,也称为成员可见性,包括:Private、Public。

Private:私有。只能在类的定义中访问,通过对象无法访问。

Public:公有。既可以在类的定义中访问,也能通过对象访问。


成员变量声明时必须显示声明成员权限。

成员方法(过程与函数)声明时可以不声明成员权限,默认表示Public。


类Student2的定义如下

Public m_id As Integer   '公有成员变量
Public m_name As String
Private m_gender As Boolean '私有成员变量

'm_birth As Date       '报错,成员变量前必须有权限声明

'公有成员方法
Public Sub display()
  '类中可以访问这三个成员,正确。
  Debug.Print "id:" & m_id & ",name:" & m_name & ":gender:" & m_gender
End Sub

'私有成员方法
Private Sub display2()
  Debug.Print "id:" & m_id & ",name:" & m_name & ":gender:" & m_gender
End Sub

'默认权限的成员方法,等于加Public
Sub display3()
  '类中可以访问这三个成员,正确。
  Debug.Print "id:" & m_id & ",name:" & m_name & ":gender:" & m_gender
End Sub

对象的创建与访问

Sub test3()
   Dim s As New Student2  

   '访问对象的成员变量
   s.m_id = 3
   s.m_name = "王五"
   '无法访问私有成员变量
   's.m_gender = True
   
   s.display1
   '无法访问对象的私有成员过程
   's.display2
   s.display3

End Sub