オブジェクトとは

 設計図を基に実物を作ることにより、使用することができるようになります。オブジェクト指向プログラミングの世界でも同じように、クラスを基にオブジェクトを作ることにより、コンピュータ上で動かすことができるようになります。これから見るのは、あらかじめ定義されているクラスを基に、メモリ上にオブジェクトを配置して使用する方法です。この作業は次の図のように表すことができます。

インスタンス生成
インスタンス生成

 上図にあるように、クラスを基にオブジェクトを作成することを、「インスタンス生成」と呼びます。それによりできあがった“モノ”がオブジェクトまたは、インスタンスとも呼ばれます。この手順を踏むことにより利用することができるようになるわけです。

インスタンス生成の書式
$変数名 = new クラス名(引数リスト);

○ ファイル

 次のようにファイルを作成してください。

ファイルの種類 PHPファイル
ファイル名 InstanceTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

InstanceTest.php

  1. <?php
  2. //クラスファイルを読み込む
  3. require_once 'Car.php';
  4. ?>
  5. <!DOCTYPE html>
  6.  <html lang="ja">
  7.  <meta charset="utf-8">
  8.  <head>
  9.   <title>Carオブジェクト実行</title>
  10.  </head>
  11.  <body>
  12. <?php
  13. //車の状態を表示する関数
  14. function showData($car){
  15.  print('スピード:' . $car -> speed . 'km<br>');
  16.  print('ガソリン:' . $car -> gas . 'L<br>');
  17. }
  18. //インスタンスを生成する
  19. $car = new Car();
  20. //プロパティを初期化する
  21. $car -> speed = 0;
  22. $car -> gas = 20.0;
  23. //現在の状態を表示する
  24. showData($car);
  25. print('<hr>');
  26. //加速してみる
  27. print('加速します!<br>');
  28. $car -> SpeedUp(5);
  29. showData($car);
  30. print('<hr>');
  31. //加速してみる
  32. print('加速します!<br>');
  33. $car -> SpeedUp(5);
  34. showData($car);
  35. print('<hr>');
  36. //減速してみる
  37. print('減速します!<br>');
  38. $car -> SpeedDown(5);
  39. showData($car);
  40. print('<hr>');
  41. //減速してみる
  42. print('減速します!<br>');
  43. $car -> SpeedDown(5);
  44. showData($car);
  45. print('<hr>');
  46. ?>
  47.  </body>
  48. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 3行目はCar.phpを読み込んで、InstanceTest.phpでCarクラスを参照できるようにしています。

 14~17行目はshowData関数を定義しています。この関数はCarオブジェクトを受け取り、そのオブジェクトのスピード情報とガソリン残量を表示します。

 20行目ではCarオブジェクトを生成しています。そして、23~24行目で生成したオブジェクトのプロパティを初期化しています。

 32、38行目でCarオブジェクトのspeedUpメソッドを呼び出し、加速します。今回は2回5㎞を渡してspeedUpメソッドを呼び出しているので、10㎞までスピードが出ます。

 44、50行目でCarオブジェクトのspeedDownメソッドを呼び出し、減速します。今回は2回5kmを渡してspeedDownメソッドを呼び出しているので、10km → 0kmとなっているのを確認できます。

インスタンス生成のイメージ
インスタンス生成のイメージ

前へ   次へ