例として、テレビを取り上げてみましょう。テレビはひとりでにできあがったわけではありませんし、無計画に作っているわけでもありません。設計図があって、それを基に製造されています。ひとつの設計図を基に、外観や機能などが同じテレビを何台も作ることができます。オブジェクト指向におけるプログラムの基本も同じです。設計図を作成する作業をはじめに行ないます。それは、クラスを作成することによって行ないます。つまりクラスは、現実の世界で言う設計図のような役割を果たします。
では、そのクラスはどのように記述するのでしょうか。
クラス定義の書式 |
---|
class クラス名 { 各種定義… } |
まずは、クラスを作成しましょう。
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHPファイル |
---|---|
ファイル名 | Car.php |
○ プログラム
次のようにプログラムを入力してください。
Car.php
ここまでで、クラスである設計図の単位となるものを作成しました。これから、設計図に具体的な記述をしていくことになります。では、クラスには何を記述するのでしょうか。クラスは、基本的に次のような構成になっています。
○ プロパティ ・・・ テレビで例えるなら、画面の明るさや、画面の濃さなどを表す特徴や属性。プログラムでは、変数で表現される。メンバ変数とも呼ばれる。
○ メソッド ・・・ テレビで例えるなら、テレビが持っている機能や操作。プログラムでは、関数で表現される。
上記のクラス内で定義されるプロパティやメソッドをメンバと呼びます。
プロパティ変数定義の書式 |
---|
アクセス権 $変数名 = 式; |
メソッド定義の書式 |
---|
アクセス権 function メソッド名(引数リスト){ 処理 } |
先ほど作成したクラスにメンバを記述しましょう。
○ プログラム
先ほど作成したクラスにプロパティ・メソッドの記述をしましょう。今回は仕様として、車はスピードと燃料残をデータとして持ち、加減速する機能があるものとします。次のプログラムを入力してください。
○ クラス図
○ 解説
12行目のメンバ変数ではスピード情報を保存します。この変数が0であれば停止している状態、0でなければ動いている状態を表します。13行目のフィールド変数ではガソリンの残量を保存します。加速するとガソリン残量を減らします。
17行目~27行目は加速するメソッドです。加速は、メンバ変数のスピード情報を増やすことによって表現します。引数で加速するkm数を受け取り、スピード情報に加算します。その際、加速分に応じてガソリン残量を減らします。このメソッド内で指定されている「$this」は、自分を指すキーワードです。例えば、「$this -> speed」とあれば、プロパティのspeedを指し、「$this -> SpeedUp(1)」とあれば、自分から自分のSpeedUpメソッドを呼び出していることを指します。
30行目~37行目は減速するメソッドです。減速は、メンバ変数のスピード情報を減らすことによって表現します。引数で減速するkm数を受け取り、スピード情報に減算します。その際、ガソリン残量は減らしません。
ここまでで、クラスである設計図の記述方法を見てきました。あくまでも設計図のため、このままでは使用することができません。これを基に実物を作る作業が必要です。それに関して次の節で学習します。