コンストラクタ
クラス名は最初は必ず大文字になる
変数 | |
---|---|
メンバー変数(フィールド) | クラスのメソッド外で宣言された変数 |
ローカル変数 | メソッド内で宣言された変数 |
PHPの場合、__constructという名前のメソッドを作ることでコンストラクタになる
public function __construct($name)
$this->name = $name;
}
コンストラクタ
function __construct($n){
$this->name = $n;
}
同じクラス内のプロパティとかメソッドにアクセスするときは、this->プロパティ名orメソッド名
$this->name = $name;
クラス インスタンス
test21.php
<?php
// 継承
// 親クラス
class User {
public $name;
public $test = "テスト";
public function __construct($name) {
$this->name = $name;
}
// //final→override禁止
// final public function sayHi() {
public function sayHi() {
echo "hi, i am $this->name!";
}
}
// 子クラス
class AdminUser extends User {
// プロパティをオーバーライド
public $test = "Adminテスト";
public function sayHello() {
echo "hello from Admin!";
}
// override→子クラスで親クラスのメソッドを上書き。メソッドだけでなくプロパティも出来る
public function sayHi() {
echo "[admin]hi, i am $this->name!";
}
}
$tom = new User ( "Tom" );
$bob = new AdminUser ( "Bob" );
$tom->sayHi ();
$bob->sayHi ();
$bob->sayHello ();
echo $tom->name;
echo $tom->test; // テスト
echo $bob->test; // Adminテスト
?>