第3章 アクセス修飾子とカプセル化
3.2 アクセス修飾子について
これまでクラスの構成要素であるフィールド変数やメソッドに「public」や「private」といったキーワードを設定してきました。これらを総称して「アクセス修飾子」と呼びます。
アクセス修飾子は3つの種類があります。
アクセス修飾子の種類
① public :クラス内、クラス外のどこからでもアクセス可能
② protected :同じクラス及び継承するサブクラスからしかアクセスできない
③ private :同じクラス内からしかアクセスできない
1~3のアクセス修飾子のアクセス可能範囲をまとめると以下のようになります。
表 3.2.1:アクセス可能範囲
表からも分かるようにアクセス修飾子は以下の並びで左から右へ行くとアクセス制限が強くなっていきます。また、アクセス修飾子を付けなかった場合は、publicと同様の動きをします。
この違いをきちんと理解した上で、メンバにアクセス制限を設定する必要があります。
アクセス修飾子別のアクセスイメージ
図 3.2.1:アクセス修飾子別のアクセスイメージ
また、PHPではクラス(class)にはアクセス修飾子を付与することはできません。
PHPではクラス内のメンバ(フィールド変数、メソッド)にアクセス修飾子を必要に応じて定義することにより、細かいレベルでアクセス制限ができる仕組みになっています。
ポイント・privateメンバには、他のクラスから直接アクセスはできない。
・publicメンバには、全てのクラスからアクセスできる。