プロパティ
VB2010では、クラスの中にプロパティを定義することができます。このプロパティは、クラス作成者の側から見ると、メソッドのように記述をします。クラス利用者の側から見ると、フィールドのように利用できます。
プロパティのイメージ
修飾子ではアクセス権限を指定でき、「ReadOnly」「WriteOnly」を指定することにより、代入するか、参照するかの制限を指定することができます。
次のプログラムが「ReadOnly」を指定した際のプログラムです。Getブロックのみ表示されます。
Public ReadOnly Property Speed As Integer
Get
End Get
End Property
以下のプログラムは「WriteOnly」を指定した際のプログラムです。Setブロックのみ表示されます。
Public WriteOnly Property Speed As Integer
Set(value As Integer)
End Set
End Property
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 |
コンソール アプリケーション |
プロジェクト名 |
PropertyTest |
サンプルダウンロード
○ 作成の準備
サンプルにプロパティを追加しましょう。それに伴い、不要になるメソッドを削除しましょう。「ConstructorTest」をコピーしてプロジェクトを作成してください。
○ プログラム
Carクラスに次のようにプロパティの追加記述をしてください。
Car.vb
- Public Class Car
- 'フィールド==========
- 'Public _speed As Integer 'スピード情報
- Private _speed As Integer 'スピード情報(修正)
- 'Public _gas As Double 'ガソリン情報
- Private _gas As Double 'ガソリン情報(修正)
- 'プロパティ==========
- 'スピード参照用
- Public ReadOnly Property Speed As Integer
- Get
- Return Me.m_speed
- End Get
- End Property
- 'ガソリン参照・設定用
- Public Property Gas As Double
- Get
- Return Me.m_gas
- End Get
- Set(value As Double)
- If Value > 0 Then
- Me.m_gas = Value
- Else
- Me.m_gas = 0
- End If
- End Set
- End Property
- 'コンストラクタ===========
- Public Sub New()
- Me.New(20)
- End Sub
(そのほかの記述…)
- '初期化を行うメソッド
- 'Public Sub Init(gas As Double)
- ' Me.m_speed = 0
- ' Me.m_gas = gas
- 'End Sub
- ''スピードを取得する
- 'Public Function GetSpeed() As Integer
- ' Return Me.m_speed
- 'End Function
- ''ガソリン量を取得する
- 'Public Function GetGas() As Double
- ' Return Me.m_gas
- 'End Function
- End Class
○ プログラム
オブジェクトを利用するプログラムも変更しましょう。
Form1.vb
- '表示用プロシージャ
- Private Sub showData()
- 'Me.TextBox1.Text = Me.obj.m_speed()
- 'Me.TextBox1.Text = Me.obj.GetSpeed
- Me.TextBox1.Text = Me.obj.Speed
- 'Me.TextBox2.Text = Me.obj.m_gas()
- 'Me.TextBox2.Text = Me.obj.GetGas()
- Me.TextBox2.Text = Me.obj.Gas
- End Sub
プロパティを追加することにより、Carオブジェクトにとってはメソッドのように動作し、Carクラスを利用するオブジェクトからはフィールドを使うかのように利用することができるようになりました。
前へ 次へ