はじめに
前回の記事では、Javaのオーバーロードについて紹介しました。
前回の記事
本記事では、Javaのアクセス修飾子について紹介します。
アクセス修飾子とは
アクセス修飾子とは、クラスやフィールド、メソッドを他クラスにどこまで公開するかを決める修飾子です。
アクセス修飾子は次のように記述します。※フィールドの例
アクセス修飾子には「public」「protected」「private」の3種類があります。
public
publicは、どこからでも利用することができるアクセス修飾子です。
利用方法 | 利用可否 |
クラス内からの利用 | 〇(利用可) |
同じパッケージ内からの利用 | 〇(利用可) |
異なるパッケージからの利用 | 〇(利用可) |
サブクラスへの継承(同じパッケージ内) | 〇(利用可) |
サブクラスへの継承(異なるパッケージ) | 〇(利用可) |
スポンサーリンク
例えば、次のようなクラス「Cat」があり、フィールドにpublicの変数「name」を定義しています。
publicのアクセス修飾子は、どこからでもアクセスできるので、次のように外部のクラスから参照・代入することができます。
protected
protectedは、同じパッケージ内からのみ利用することができるアクセス修飾子です。ただし、継承に関してはパッケージに関わらず利用することができます。
利用方法 | 利用可否 |
クラス内からの利用 | 〇(利用可) |
同じパッケージ内からの利用 | 〇(利用可) |
異なるパッケージからの利用 | ×(利用不可) |
サブクラスへの継承(同じパッケージ内) | 〇(利用可) |
サブクラスへの継承(異なるパッケージ) | 〇(利用可) |
例えば、次のようなクラス「Cat」があり、フィールドにprotectedの変数「name」を定義しています。
protectedのアクセス修飾子は、異なるパッケージから利用することはできないので、異なるパッケージから利用するとコンパイルエラーが発生します。
アクセス修飾子なし
アクセス修飾子なしは、同じパッケージ内からのみ利用することができます。
protectedとの違いは、継承に関してprotectedはパッケージに関わらず利用可能だが、アクセス修飾子なしの場合は、パッケージ内からのみ利用可能です。
利用方法 | 利用可否 |
クラス内からの利用 | 〇(利用可) |
同じパッケージ内からの利用 | 〇(利用可) |
異なるパッケージからの利用 | ×(利用不可) |
サブクラスへの継承(同じパッケージ内) | 〇(利用可) |
サブクラスへの継承(異なるパッケージ) | ×(利用不可) |
例えば、次のようなクラス「Cat」があり、フィールドにアクセス修飾子なしの変数「name」を定義しています。
アクセス修飾子なしは、異なるパッケージから利用することはできないので、異なるパッケージから利用するとコンパイルエラーが発生します。
private
privateは、クラス内部からのみ利用できるアクセス修飾子です。
利用方法 | 利用可否 |
クラス内からの利用 | 〇(利用可) |
同じパッケージ内からの利用 | ×(利用不可) |
異なるパッケージからの利用 | ×(利用不可) |
サブクラスへの継承(同じパッケージ内) | ×(利用不可) |
サブクラスへの継承(異なるパッケージ) | ×(利用不可) |
例えば、次のようなクラス「Cat」があり、フィールドにprivateの変数「name」を定義しています。
privateのアクセス修飾子は、外部から利用することはできないので、次のようにパッケージに関わらず外部のクラスから利用するとコンパイルエラーが発生します。
終わりに
本記事では、Javaのアクセス修飾子について紹介しました。
次回の記事では、Javaの継承について紹介します。
次回の記事