チュートリアル: クラスの定義 (Visual Basic)

このチュートリアルでは、クラスを定義する方法について説明します。このクラスを使用してオブジェクトを作成できます。 また、新しいクラスにプロパティとメソッドを追加する方法と、オブジェクトを初期化する方法についても説明します。

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「IDE をカスタマイズする」をご覧ください。

クラスを定義するには

  1. [ファイル] メニューの [新しいプロジェクト] をクリックして、プロジェクトを作成します。 [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. Visual Basic プロジェクト テンプレートの一覧から [Windows アプリケーション] を選択して、新しいプロジェクトを表示します。

  3. [プロジェクト] メニューの [クラスの追加] をクリックして、プロジェクトに新しいクラスを追加します。 [新しい項目の追加] ダイアログ ボックスが表示されます。

  4. [クラス] テンプレートを選択します。

  5. 新しいクラスに UserNameInfo.vb という名前を指定し、 [追加] をクリックして新しいクラスのコードを表示します。

    Public Class UserNameInfo
    End Class
    

    Note

    Visual Basic コード エディターを使用すると、Class キーワードに続けて新しいクラスの名前を入力することで、クラスをスタートアップ フォームに追加できます。 コードエディターには、対応する End Class ステートメントが用意されています。

  6. Class ステートメントと End Class ステートメントの間に次のコードを追加して、クラスのプライベート フィールドを定義します。

    Private userNameValue As String
    

    フィールドを Private として宣言すると、そのクラス内でのみ使用できます。 より多くのアクセスを提供する Public などのアクセス修飾子を使用すると、クラスの外部からフィールドを使用できるようにすることができます。 詳しくは、「Visual Basic でのアクセス レベル」を参照してください。

  7. 次のコードを追加して、クラスのプロパティを定義します。

    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
    
  8. 次のコードを追加して、クラスのメソッドを定義します。

    Public Sub Capitalize()
        ' Capitalize the value of the property.
        userNameValue = UCase(userNameValue)
    End Sub
    
  9. Sub New という名前のプロシージャを追加して、新しいクラスのパラメーター化されたコンストラクターを定義します。

    Public Sub New(ByVal UserName As String)
        ' Set the property value.
        Me.UserName = UserName
    End Sub
    

    このクラスに基づくオブジェクトが作成されると、Sub New コンストラクターが自動的に呼び出されます。 このコンストラクターは、ユーザー名を保持するフィールドの値を設定します。

クラスをテストするボタンを作成するには

  1. ソリューション エクスプローラーで名前を右クリックし、 [ビュー デザイナー] をクリックして、スタートアップ フォームをデザイン モードに変更します。 既定では、Windows アプリケーション プロジェクトのスタートアップ フォームには、Form1.vb という名前が付けられています。 メイン フォームが表示されます。

  2. メイン フォームにボタンを追加し、それをダブルクリックして、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)
    

アプリケーションを実行するには

  1. F5 キーを押してアプリケーションを実行します。 フォーム上のボタンをクリックして、テスト プロシージャを呼び出します。 元の UserName が "MOORE, BOBBY" であることを示すメッセージが表示されます。これは、プロシージャがオブジェクトの Capitalize メソッドを呼び出したためです。

  2. [OK] をクリックしてメッセージ ボックスを閉じます。 Button1 Click プロシージャによって UserName プロパティの値が変更され、UserName の新しい値が "Worden, Joe" であることを示すメッセージが表示されます。

関連項目