Javaの試験のためのメモをまとめたものなので、実装で役に立つというより、紙の上で考えるときに思い出せるとお得なまとめです。
アクセス修飾子
クラス、フィールド、メソッド、コンストラクタなどに付与することでアクセスを制限する修飾子
アクセス修飾子 | 制限 | 内容 |
---|---|---|
private | 強 | 同一クラスからのアクセス可能 |
省略(何も書かないこと) | 同一パッケージ内からのみアクセス可能 | |
protected | 同一パッケージ、もしくはそのサブクラスからアクセス可能 | |
public | 弱 | どのクラスからもアクセス可能 |
曖昧になりがちな使い所とかルールとか
インターフェースで用いる
- インターフェースのフィールドやメソッドはpublicでなければならない。よって、他のアクセス修飾子がインタフェースのメソッドについている問題があれば、即はねることができます
- ちなみに、インタフェースのメソッドは暗黙的にpublic abstructで修飾される
privateで修飾できる要素
- 3つのみ
- クラスのコンストラクタ
- フィールド
- 具象メソッド
オーバーライドするメソッドの修飾子
- スーパークラスと同じかそれより弱くないといけない。よって、上記の表の強弱の順番を覚えることが大事
staticフィールドの宣言時のアクセス修飾子の位置
- アクセス修飾子 static 型 変数名; または
-
static アクセス修飾子 型 変数名;
- この場合アクセス修飾子とstaticの順番が変わっても良い
スーパークラスのprivateメソッドやフィールド
- スーパークラスを継承したサブクラスであっても、privateな要素を利用することはできない