- Javaにはクラスのメンバーに対するアクセス制御を表すキーワードが3種類ある。
public, protected, privateである。
また、この他にキーワードを省略した場合の 「デフォルトのアクセス制御」がある。
- 以上、4つのアクセスモードの意味を、以下に簡単にまとめる。
アクセス制御とその許可範囲
\ public proteced 指定なし private クラスの内部 ○ ○ ○ ○ 同一のパッケージ ○ ○ ○ × サブクラス内 ○ ○ × × 無関係なクラス ○ × × ×
- パッケージを指定しなかった場合には、クラスは「名前なしのパッケージ」に 共通して含まれていると見なされる。
パッケージを使用しないクラス間では、 publicとprivate の違いしか存在しない。
(他の明示的にパッケージを宣言したクラスからのアクセス権には、違いがある。)
- 禁止されるのは classname.val による直接のアクセスにすぎない。
実際、内部変数にアクセスするためのpublicなメソッドを実装する場合がしばしばある。
/* privateな変数val */ private int val; /* publicなメソッド経由でvalにアクセス */ public int getX() { return val; }
2003年10月4日 13:19 更新