チュートリアル: クラスの定義 (Visual Basic)
このチュートリアルでは、クラスを定義する方法を説明します。クラスを定義したら、オブジェクトの作成に使用できます。 作成したクラスにプロパティとメソッドを追加する方法、およびオブジェクトを初期化する方法についても説明します。
注意
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。
クラスを定義するには
[ファイル] メニューの [新しいプロジェクト] をクリックしてプロジェクトを作成します。 [新しいプロジェクト] ダイアログ ボックスが表示されます。
Visual Basic プロジェクト テンプレートの一覧の Windows アプリケーションを選択して、新しいプロジェクトを表示します。
[プロジェクト] メニューの [クラスの追加] をクリックして、新規クラスをプロジェクトに追加します。 [新しい項目の追加] ダイアログ ボックスが表示されます。
[クラス] テンプレートを選択します。
新しいクラス UserNameInfo.vb に名前を指定し、[追加] をクリックして新しいクラスのコードを表示します。
Public Class UserNameInfo End Class
注意
Visual Basic のコード エディターを使用して、クラスをスタートアップ フォームに追加できます。クラスを追加するには、Class キーワードに続けて新規クラスの名前を入力します。 コード エディター によって、対応する End Class ステートメントが自動的に入力されます。
Class ステートメントと End Class ステートメントの間に次のコードを追加して、クラスのプライベート フィールドを定義します。
Private userNameValue As String
フィールドに Private を宣言した場合、そのクラスの内部でのみ使用可能になります。 これらのフィールドをクラスの外部からアクセスできるようにするには、Public などのより広いアクセス範囲を提供するアクセス修飾子を使用します。 詳細については、「Visual Basic でのアクセス レベル」を参照してください。
次のコードを追加してクラスのプロパティを定義します。
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
次のコードを追加してクラスのメソッドを定義します。
Public Sub Capitalize() ' Capitalize the value of the property. userNameValue = UCase(userNameValue) End Sub
Sub New というプロシージャを追加して新規クラスのパラメーター化されたコンストラクターを定義します。
Public Sub New(ByVal UserName As String) ' Set the property value. Me.UserName = UserName End Sub
Sub New コンストラクターは、このクラスからオブジェクトを作成するとき自動的に呼び出されます。 このコンストラクターは、ユーザー名を保持するフィールドの値を設定します。
クラスをテストするボタンを作成するには
スタートアップ フォームをデザイン モードに変更します。変更するには、ソリューション エクスプローラーでスタートアップ フォームの名前を右クリックし、[デザイナーの表示] をクリックします。 Windows アプリケーション プロジェクトのスタートアップ フォームは、既定で Form1.vb という名前が付きます。 メイン フォームが表示されます。
メイン フォームにボタンを追加し、それをダブルクリックして、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)
アプリケーションを実行するには
F5 キーを押してアプリケーションを実行します。 フォームのボタンをクリックしてテスト プロシージャを呼び出します。 プロシージャがオブジェクトの Capitalize メソッドを呼び出したため、元の UserName が "MOORE, BOBBY" であるというメッセージが表示されます。
[OK] をクリックしてメッセージ ボックスを閉じます。 Button1 Click プロシージャは UserName プロパティの値を変更し、変更後の UserName の値が "Worden, Joe" であるというメッセージを表示します。