カプセル化
フィールドへの読み書きやメソッドの呼び出しを制御する機能
例えば、「このメソッドはAクラスから呼び出せるが、Bクラスからは呼び出せない」「このフィールドの内容は読めるけど、書き換えは禁止」といった表現を実現できる。このように、情報へのアクセスや動作の実施について「誰に何を許すか」を定めて制限することをアクセス制限
という
アクセス制御のレベル
メンバレベル
宣言方法
フィールドのアクセス制御 アクセス修飾子 フィールド宣言;
メソッドのアクセス制御 アクセス修飾子 メソッド宣言{・・・}
アクセス修飾子
制限の範囲 | 名前 | プログラム中の指定方法 | アクセス許可する範囲 |
制限が厳しい | private | private | 自分自身のクラスのみ |
↑ | package private | (何も書かない) | 自分と同じパッケージに属するクラス |
↓ | protected | protected | 自分と同じパッケージに属するか自分を継承したクラス |
制限が緩い | public | public | 全てのクラス |
トップレベル
宣言方法
クラスのアクセス制御 アクセス修飾子 class{・・・}
アクセス修飾子
制限 | 名前 | プログラム中の指定方法 | アクセスを許可する範囲 |
厳しい | package private | (何も書かない) | 自分と同じパッケージに属するクラス |
緩い | public | public | 全てのクラス |