クラスの定義方法について
2.1 クラスの定義方法について
前章ではオブジェクト指向プログラミング、クラスとオブジェクトの概念、および関係について学習しました。オブジェクト指向プログラミングを実現する上で重要な「クラスはオブジェクトを生成する雛形」であるという関係性について理解されたと思います。本項ではクラスとオブジェクトの概念だけでなく、実際にPHPプログラム上では、どのように記述すれば良いか学習していきましょう。
2.1.1 クラス定義の基本構文
前章でクラスは属性(フィールド変数)と操作(メソッド)を持つものと学習しましたが、全てのクラスがその組み合わせになるわけではありません。変数だけのクラスやメソッドだけのクラスも定義することができます。以下にクラス定義パターンを示します。
① 変数とメソッドの両方を含む
② 変数のみ
③ メソッドのみ
上記①~③の定義パターンを踏まえて、実際のクラスを定義する基本構文を説明します。
これまで学習してきた内容では、変数の宣言は関数の外側や、関数のブロック内部で行っていました。関数(メソッド)の内部で宣言された変数のことをローカル変数と呼びます。
これに対して、フィールド変数の宣言は、メソッドブロックの内部ではなくクラスブロックで行っている点に着目して下さい。フィールド変数とローカル変数では、動作が異なりますので注意して下さい。
・ フィールド変数:クラスブロック内の全処理(全てのメソッド)内で使用可能。
・ ローカル変数:宣言したブロック内(各メソッド毎)のみ使用可能。
書式と説明だけでは理解し難いと思いますので、実際にコンピュータを例にとってソースコードの凡例を見てみましょう。
Computerクラスのブロック内には変数の宣言とメソッドの定義を記述しています。クラスブロック内で宣言している、属性を表す変数($os、$cpu、$memory)のことをフィールド変数、あるいはメンバ変数と呼び、属性を宣言している部分のことをフィールドと呼びます。また、クラスブロック内に定義されたフィールド変数とメソッドを合わせてメンバと呼びます。
では次の節で実際に宣言したクラスを利用する方法について説明していきます。