#公開レベル
クラスのなかで定義されたメソッドや変数に対し、外からのアクセスを制限することができます。
アクセス権 | 説明 |
---|---|
public | クラスの外からでもアクセス可能 |
private | 定義されたクラス内でのみアクセス可能 |
protected | 定義されたクラス内、あるいはそのクラスを継承した子クラスからアクセス可能 |
<?php
class Book {
function begin(){ //アクセス権を省略するとpublicメソッドで定義される
echo "国境の長いトンネルを抜けると雪国であった。";
}
private function neko(){
echo "吾輩は猫である。";
}
}
$b = new Book();
$b->begin();
$b->neko();//ここでエラーになります。
?>
#演習
【演習2-4】
自動車クラスCarを1つ作り、「走る」「止まる」「給油」というpublicメソッドを実装したクラスを作成してください。
【演習2-5】
【演習2-4】で作成したCarを継承したセダンクラスSedanとトラッククラスTrackを作成し、それぞれのクラスで、「走る」「止まる」「給油」という親のメソッドをオーバーライドしてparentを使って親クラスのメソッドを呼び出しつつ子クラスのメソッドとして「走る」「止まる」「給油」を実装して、インスタンス化して挙動を確認してください。
【演習2-6】
【演習2-5】で作成した継承関係を使って、親クラスの各メソッドのアクセス権をprivateやprotectedに変更して、どのアクセス権の時エラーが出るか実験してください。
[<<PHP基礎(9)コンストラクタ]
(https://qiita.com/taka027/items/c1c49c8decd3cea7dbc4)
[PHP基礎(11)変数たち>>]
(https://qiita.com/taka027/items/8beccec15fde098067df)