VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
先生と生徒の会話形式で理解しよう
生徒
「先生、VB.NETでクラスを作るときに初期化処理ってどう書くんですか?」
先生
「それにはコンストラクタという特別なメソッドを使います。オブジェクトを作ったときに自動で初期化処理を実行できるんですよ。」
生徒
「コンストラクタって何ですか?」
先生
「コンストラクタは、クラスからオブジェクトを作成するときに自動で呼ばれる特別なメソッドです。例えば、人を表すクラスで名前や年齢をセットしたい場合に使います。」
1. コンストラクタの基本
VB.NETでコンストラクタを定義するには、Sub New()を使います。Newという名前は固定で、オブジェクト生成時に自動で呼ばれます。
Public Class Person
Public Name As String
Public Age As Integer
' コンストラクタ
Public Sub New(name As String, age As Integer)
Me.Name = name
Me.Age = age
Console.WriteLine("Personオブジェクトが作成されました")
End Sub
End Class
ここでMeは、自分自身のオブジェクトを指し、フィールドに値をセットするために使います。
2. オブジェクト生成と初期化処理
コンストラクタを使うと、オブジェクト生成と同時にフィールドの初期化ができます。
Module Module1
Sub Main()
Dim person1 As New Person("太郎", 25)
Console.WriteLine("名前: " & person1.Name)
Console.WriteLine("年齢: " & person1.Age)
End Sub
End Module
Personオブジェクトが作成されました
名前: 太郎
年齢: 25
このように、オブジェクト作成時に必要な情報を渡して初期化できるので、後からフィールドを設定する手間が省けます。
3. 引数なしのコンストラクタ
引数なしのコンストラクタも作ることができます。初期値を設定したい場合に便利です。
Public Class Person
Public Name As String
Public Age As Integer
' 引数なしコンストラクタ
Public Sub New()
Name = "名無し"
Age = 0
End Sub
End Class
呼び出し例:
Dim person2 As New Person()
Console.WriteLine("名前: " & person2.Name)
Console.WriteLine("年齢: " & person2.Age)
名前: 名無し
年齢: 0
初期値を設定しておくことで、後から値をセットする前でも安全にオブジェクトを使えます。
4. 初心者向けの例え
コンストラクタは「家を建てるときに家具や電気をセットしてくれる工事人」と考えるとわかりやすいです。家(オブジェクト)が完成するタイミングで必要な準備(初期化)が自動で行われます。
5. 複数のコンストラクタを使い分ける
VB.NETでは同じクラスに複数のコンストラクタを定義できます。引数の数や型で使い分けることができ、柔軟な初期化処理が可能です。
Public Class Person
Public Name As String
Public Age As Integer
' 引数なし
Public Sub New()
Name = "名無し"
Age = 0
End Sub
' 引数あり
Public Sub New(name As String)
Me.Name = name
Age = 0
End Sub
' 引数2つ
Public Sub New(name As String, age As Integer)
Me.Name = name
Me.Age = age
End Sub
End Class
このようにオーバーロードされたコンストラクタを使うと、様々な初期化パターンに対応できます。