2
4

More than 5 years have passed since last update.

よくわからなくなる曖昧なアクセス修飾子

Posted at

Javaの試験のためのメモをまとめたものなので、実装で役に立つというより、紙の上で考えるときに思い出せるとお得なまとめです。

アクセス修飾子

クラス、フィールド、メソッド、コンストラクタなどに付与することでアクセスを制限する修飾子

アクセス修飾子     制限 内容      
private 強   同一クラスからのアクセス可能
省略(何も書かないこと)     同一パッケージ内からのみアクセス可能
protected     同一パッケージ、もしくはそのサブクラスからアクセス可能
public 弱   どのクラスからもアクセス可能

曖昧になりがちな使い所とかルールとか

インターフェースで用いる

  • インターフェースのフィールドやメソッドはpublicでなければならない。よって、他のアクセス修飾子がインタフェースのメソッドについている問題があれば、即はねることができます
  • ちなみに、インタフェースのメソッドは暗黙的にpublic abstructで修飾される

privateで修飾できる要素

  • 3つのみ
    • クラスのコンストラクタ
    • フィールド
    • 具象メソッド

オーバーライドするメソッドの修飾子

  • スーパークラスと同じかそれより弱くないといけない。よって、上記の表の強弱の順番を覚えることが大事

staticフィールドの宣言時のアクセス修飾子の位置

  • アクセス修飾子 static 型 変数名; または
  • static アクセス修飾子 型 変数名;
    • この場合アクセス修飾子とstaticの順番が変わっても良い

スーパークラスのprivateメソッドやフィールド

  • スーパークラスを継承したサブクラスであっても、privateな要素を利用することはできない
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4