VB.NET 初心者向け クラスの基本

今回は、クラスについて紹介していきます。クラスはとても大切なので是非理解しておきましょう。
クラスは少し奥が深いので今回は簡単な例をもとに記載していきます。
使用しているうちにだんだんわかってくると思うので是非理解しながら使ってみてください。

クラスとは

「クラス」を説明するには同時に「インスタンス」と呼ばれるものもセットで考えたほうが理解しやすいと思いますので
ここではクラスとインスタンスの関係について少し見てみましょう。

「クラス」は、プログラムを作る際の「型」もしくは「部品の設計図」と考えてみましょう。
「インスタンス」は、プログラムを作る際の「部品」です。

言葉で表すとこんな感じなのですが、よくわからないと思うので例を見ていきます。

クラスファイルの作り方

今回は、新しくクラスファイルを作成してみましょう。
プロジェクトを右クリック→「追加」→「新しい項目」

「クラス」→名前を付ける→「追加」

今回はClsHuman.vbというファイルを作成してみました。開いてみましょう。

Public Class ClsHuman

End Class

このように、クラスを作成するときは、

Class クラス名称
End Class

で囲むことで作成することができます。

プロパティを作成

次にクラスのプロパティを作成していきます。
プロパティは、フィールドの値の設定や取得をするものなのですが、ざっくりClassで使用する変数みたいなものと覚えておきましょう。
書き方は下記のようになります。

 Public Property プロパティ名As 型

 

今回は、RPGっぽくこんなプロパティにしてみました。

Public Class ClsHuman
    Public Property Name As String
    Public Property Level As Integer
    Public Property Hp As Integer
    Public Property Mp As Integer
End Class

4つのプロパティを宣言しました。

 

メソッドの作成

メソッドとは、ざっくり関数みたいなものです。
これも言葉より例を見てみましょう。

先ほどのClsHumanにlevelUpメソッドを独自に追加してみましょう。

Public Class ClsHuman
    'プロパティの作成
    Public Property Name As String
    Public Property Level As Integer
    Public Property Hp As Integer
    Public Property Mp As Integer

    'メソッドの作成
    Public Sub levelUp()
        MsgBox(Name & "のレベルが上がった。" & vbCrLf & "LV" & Level.ToString & "→" & (Level + 1).ToString)
        Level = Level + 1
    End Sub
End Class

こんな感じで作成してみました。
メッセージを表示してから、値のカウントをアップしています。
メソッドは、このように関数みたいな感じで作成することができます。

 

それでは、さっそくクラスを使ってプログラムを書いてみましょう。

クラスの呼び出し

フォームを作成し、ロード処理で先ほど作成したクラスを使って処理を作りました。

Public Class frmClass
    Private Sub FrmClass_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'インスタンスの作成(ClsHuman型)
        Dim human1 As New ClsHuman

        'プロパティに値を設定
        human1.Name = "ひろにも"
        human1.Level = 1

        'メソッドの呼び出し
        human1.levelUp()

    End Sub
End Class

解説
5行目:先ほど作成したクラス(ClsHuman)からインスタンスを作成する。
8行目~9行目:プロパティに値を設定する。
12行目:作成したメソッド(levelUp)を呼び出す。

 

結果

メソッドが呼び出されて、メッセージボックスを出力しています。

 

コンストラクタ

クラスには、必ず「コンストラクタ」という特殊なメソッドが存在します。
コンストラクタとは、クラスからインスタンスを作成する時に、自動で呼び出される初期化用のメソッドです。
コンストラクタの書き方は下記のようになります。

Sub New()
    処理
End Sub

先ほどのClsHuman.vbに、例を記載しました。

Public Class ClsHuman

    'プロパティ
    Public Property Name As String
    Public Property Level As Integer
    Public Property Hp As Integer
    Public Property Mp As Integer

    'コンストラクタ
    Sub New()
        Name = "主人公"
        Level = 1
        Hp = 10
        Mp = 0
    End Sub

    'メソッド
    Public Sub levelUp()
        MsgBox(Name & "のレベルが上がった。" & vbCrLf & "LV" & Level.ToString & "→" & (Level + 1).ToString)
        Level = Level + 1
    End Sub
End Class

 

フォームのロード処理で、クラスを呼び出してみましょう。

Public Class frmClass
    Private Sub FrmClass_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'インスタンスの作成(ClsHuman型)
        Dim human1 As New ClsHuman

        'メソッドの呼び出し
        human1.levelUp()
    End Sub
End Class

解説
4行目:インスタンスを作成しているところで、コンストラクタ呼び出されています。

結果

コンストラクタが呼びだされ、「Name」プロパティに「主人公」が入力されているのが確認できましたね。
コンストラクタでは、主に初期化処理を記載していきましょう。
ちなみにコンストラクタは省略することができ、裏で何も処理が記載されていないコンストラクタが実行されています。

クラスを利用した記事を追加しましたので、ぜひ合わせて読んでみてください。

まとめ

今回は、とても大切な内容で、クラスとインスタンスの使い方について紹介しました。
この辺はオブジェクト指向といってとても大切な考え方なのでゆっくり時間をかけて理解するようにしましょう。

クラスとインスタンス
  • クラスとは、プログラムを作成するための「部品の設計図」
  • インスタンスとは、プログラムを作成するための「部品」

 

VB.NETの記事一覧

おすすめの記事