Edited at

PHP基礎(9)コンストラクタ

More than 1 year has passed since last update.


コンストラクタ

コンストラクタとはオブジェクトをインスタンス化するときに初回だけ呼び出される特別なメソッドです。newを使った直後に、そのオブジェクトの初期化として呼び出されます。

コンストラクタは省略可能です。

PHPの場合、名称は固定的に__constructとします。

メソッドと違う点は戻り値を返せません。メソッドと同じ点は引数を渡せるところです。

<?php

class Figure {
function __construct($v) {
echo "頂点の数は$v";
}
}

$n = new Figure(3);
?>

コンストラクタは、インスタンスの初期状態を決めるために使われます。

上の例では、図形クラスFigureが最初に頂点数$vをもらってインスタンス化されています。頂点数を初期時に決めることで図形クラスが三角形を扱うオブジェクトになったとも言えます。(もちろん、実務的にはもっと多くのコードを書いてより図形の振る舞いを実現できるクラスにする必要がありますが)

言わばインスタンス(オブジェクト)は初期値をもらって生まれ、活動し、死んでいく存在です。

オブジェクト指向的考え方として、オブジェクトのライフサイクルを設計し、クラスをプログラミングする時にコンストラクタで初期値として何をもらって、どのようにオブジェクトの最初の状態を決めるか、そこから始めるといいと思います。ちょうどコンストラクタはオブジェクトの始まりでもありますし。


演習

【演習2−1】

自分の好きな物をターゲットにして適当なクラスを定義し、そこにコンストラクタを用意して、クラスがインスタンス化されるときにそのコンストラクタが呼び出されていることを確認するプログラムを作成してください。

【演習2−2】

【演習2−1】で作成したコード内に新しいインスタンスメソッドを作り、自由な引数を受け取り、戻り値を文字列として任意の文字列を返すようにし、そのメソッドを呼び出して戻り値を確認できるプログラムを作成してください。

【演習2−3】

【演習2−2】で作成したコード内に新しいクラスメソッドを作り、自由な引数を受け取り、戻り値を数値として任意の値を返すようにし、そのメソッドを呼び出して戻り値を確認できるプログラムを作成してください。

<<PHP基礎(8)メソッド

PHP基礎(10)公開レベル>>