Javaのアクセス修飾子について使い方や省略の有無などを解説!
  • facebookページ
  • twitterページ
  • 2021.04.30

    Javaのアクセス修飾子について使い方や省略の有無などを解説!

    Javaのアクセス修飾子とは

    アクセス修飾子とは、クラスやメンバフィールド、メソッドの他クラスへの公開範囲を決定する修飾子のことです。

    アクセス修飾子によってアクセスの制限をかけられ、その種類には4つあります。

    アクセス修飾子の種類一覧

    Javaのアクセス修飾子には以下の4つがあります。

    4種類のアクセス修飾子
    • public
    • protected
    • private
    • 指定なし(デフォルト)

    それぞれについて見ていきましょう。

    public

    publicは、どこからでもアクセスを可能にできるアクセス修飾子です。

    publicなクラス・インタフェースは、1つのファイルに1つしか記述できないという特徴もあります。

    また、「拡張子を除くファイル名」と「クラス・インタフェース名」は同じであることが条件です。

    ポテパンダの一言メモ

    加えて、パッケージの直下にある通常のクラス(トップレベルクラス)に付加できるアクセス修飾子は publicのみとなっています

    protected

    protectedは、同じパッケージ内のクラスや異なるパッケージであっても、該当クラスを継承したサブクラス内部からアクセスできるアクセス修飾子です。

    サブクラスから参照するケースの記述例は、下記のようになります。

    同一クラスから参照するケースの記述例は、下記のようになります。

    private

    privateは、クラス内部からのみアクセスができるアクセス修飾子です。

    外部からのアクセスを不用意に許可せず、決められたメソッドからのみアクセスさせたい場合に有効なアクセス修飾子になっています。

    指定なし(デフォルト)

    アクセス修飾子が付けられておらず、指定がない場合のアクセス指定です。

    この場合、同パッケージ内のすべてのクラスからアクセスできるようになります

    アクセス修飾子のスコープ一覧

    アクセス修飾子のスコープ範囲は、下記のように分けられています。

    アクセス修飾子 同一クラス 同一パッケージ サブクラス すべて
    public
    protected ×
    指定なし × ×
    private × × ×
    ポテパンダの一言メモ

    public修飾子のスコープが最も広く設定されており、どのクラスからも参照できますね。

    アクセス修飾子を記述する順番

    アクセス修飾子は、クラスやメソッド、フィールドで複数の修飾子を列挙する場合、以下のように記述できます。

    このように、アクセス修飾子は一番左側に記述し、staticなどの修飾子はアクセス修飾子の後ろに記述しましょう

    アクセス修飾子の使い方

    アクセス修飾子の使い方をサンプルコードで紹介します。

    上記のプログラムを実行すると、下記の実行結果を得られます。

    また、17行目に「point.privatePoint = 0;」を追加すると、private修飾子のprivatePointを操作しようとしているためエラーが表示されます。

    アクセス修飾子の使い分け

    アクセス修飾子を使い分けるのは、アクセス範囲を定めたい場合です。

    フィールドやメソッドに対してアクセス修飾子を設定すれば、他クラスから参照させるのか・させないのかを制御できます。

    ポテパンダの一言メモ

    これは、作成するプログラムや内容によりますので、必要に応じて適切なアクセス修飾子を使いましょう。

    アクセス修飾子は省略できる?なしの場合は?

    アクセス修飾子は省略可能です。

    なしの場合は、同パッケージ内のすべてのクラスからアクセスできます。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE