Public文およびPrivate文

オブジェクト指向プログラミングの目標の1つは、エンド・ユーザーから実装の詳細を隠すようにブラック・ボックスを提供することです。この複雑さを隠すのを支援するために、BSLではオブジェクトのメソッドおよびプロパティを非表示にできます。

エンド・ユーザーに非表示にするメソッドおよびプロパティを作成するには、プロパティまたはメソッド定義の前にPrivateキーワードを付けます。

エンド・ユーザーがアクセス可能なメソッドおよびプロパティを作成するには、プロパティまたはメソッド定義の前にPublicまたはDimキーワードを付けます。メソッドまたはプロパティをpublic、dimまたはprivateのいずれにするかを明示的に指定しない場合は、publicになります。

ただし、プロパティまたはメソッドがPublicかPrivateかは常に明示的に指定することをお薦めします。

クラスのインスタンスからprivateのメソッドまたはプロパティにアクセスしようとすると、エラーが発生します。

例:

Class Comp
    Private modStrType
    Private Property Let ComputerType(strType)
        modStrType = strType
    End Property
    Public Property Get ComputerType
        ComputerType = modStrType
    End Property
    Private Function Funct1
        'Add business logic using class variables
    End Function
    Public Sub Sub1
        'Add business logic using class variables
    End Sub
End Class

Set objComp = new Comp
objComp.ComputerType = "Mac"        'Invalid, accessing this property will throw error as it’s private
str1 = objComp.ComputerType 
objComp.Funct1                           'Invalid, accessing this function will throw error as it’s private
objComp.Sub1