チュートリアル : クラスの定義
更新 : 2007 年 11 月
このチュートリアルでは、クラスを定義する方法を説明します。クラスを定義したら、オブジェクトの作成に使用できます。作成したクラスにプロパティとメソッドを追加する方法、およびオブジェクトを初期化する方法についても説明します。
メモ : |
---|
使用している設定またはエディションによっては、ヘルプの記載と異なるダイアログ ボックスやメニュー コマンドが表示される場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「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" であるというメッセージを表示します。
参照
処理手順
概念
参照
Imports ステートメント (.NET 名前空間および型)