設計図を基に実物を作ることにより、使用することができるようになります。オブジェクト指向プログラミングの世界でも同じように、クラスを基にオブジェクトを作ることにより、コンピュータ上で動かすことができるようになります。これから見るのは、あらかじめ定義されているクラスを基に、メモリ上にオブジェクトを配置して使用する方法です。この作業は次の図のように表すことができます。
上図にあるように、クラスを基にオブジェクトを作成することを、「インスタンス生成」と呼びます。それによりできあがった“モノ”がオブジェクトまたは、インスタンスとも呼ばれます。この手順を踏むことにより利用することができるようになるわけです。
インスタンス生成の書式 |
---|
Dim インスタンス変数名 As クラス名 インスタンス変数名 = New クラス名(引数リスト) Dim インスタンス変数名 As クラス名 New クラス名(引数リスト) |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | InstanceTest |
○ 作成の準備
先ほどのサンプルで作成したCarクラスの記述を今回のプロジェクトで利用します。「ClassTest」プロジェクトのフォルダーから、「InstanceTest」プロジェクトのフォルダーへ「Car.cs」をコピーしてください。
次に、コピーしたソースファイルをプロジェクトに登録します。ソリューションエクスプローラーより、プロジェクト名を右クリックし、[追加]―[既存項目の追加]をクリックします。
次の図のダイアログで、ファイルの場所が「InstanceTest」であることを確認して、「Car.cs」を選択し、「追加(A)」ボタンをクリックします。
すると、ソリューションエクスプローラーに追加されるので、確認してください。
○ プログラム
次のようにプログラムを入力してください。
Module1.vb
○ 実行結果
スピード:0km
ガソリン:20L
1)加速 2)減速 9)終了:1
スピード:5km
ガソリン:19.5L
1)加速 2)減速 9)終了:1
スピード:10km
ガソリン:19L
1)加速 2)減速 9)終了:2
スピード:5km
ガソリン:19L
1)加速 2)減速 9)終了:9
(終了)
○解説
4~7行目はShowDataメソッドを定義しています。このメソッドはCarオブジェクトを受け取り、そのオブジェクトのスピード情報とガソリン残量を表示します。
11行目ではCarオブジェクトを生成しています。そして、14~15行目で生成したオブジェクトのフィールドを初期化しています。
20~39行目は無限ループになっています。メニューが表示され、入力されたメニュー番号に応じて処理されます。加速を選択すると、29行目でCarオブジェクトのSpeedUpメソッドを呼び出し、加速します。減速を選択すると、33行目でCarオブジェクトのSpeedDownメソッドを呼び出し、減速します。それぞれの処理をした後にShowDataメソッドを呼び出して、現在のCarオブジェクトの状態を表示します。メニューで終了を選択するとプログラムが終了します。