Java - アクセス修飾子

アクセス修飾子

アクセス修飾子とは、クラス・メンバ変数・メソッドについて、他クラスへの公開範囲を決める修飾子を意味します。アクセス修飾子の種類とアクセス可能性については、下表のとおりです。

アクセス修飾子自ファイル他ファイル
自クラスサブクラス他クラスサブクラス他クラス
public
protected
なし
private
◯:アクセス可能 ✕:アクセス不可
public class AccessTest1 {

    public    int publicValue;
    protected int protectedValue;
              int normalValue;
    private   int privateValue;

    public static void main(String[] args) {
    }
    
    // 自ファイル + 自クラス
    public AccessTest1() {
        this.publicValue    = 1;
        this.protectedValue = 2;
        this.normalValue    = 3;
        this.privateValue   = 4;
    }
}

class AccessTest2 extends AccessTest1 {

    // 自ファイル + サブクラス
    void AccessTest2() {
        this.publicValue     = 1;
        this.protectedValue  = 2;
        this.normalValue     = 3;
        // this.privateValue = 4; アクセス不可
    }
}

class AccessTest3 {
    
    // 自ファイル + 他クラス
    void AccessTest3() {
        AccessTest1 o = new AccessTest1();
        o.publicValue     = 1;
        o.protectedValue  = 2;
        o.normalValue     = 3;
        // o.privateValue = 4; アクセス不可
    }
}
AccessTest1.java

public class AccessTest4 extends AccessTest1 {

    public static void main(String[] args) {
    }

    // 他ファイル + サブクラス
    AccessTest4() {
        this.publicValue     = 1;
        this.protectedValue  = 2;
        // this.normalValue  = 3; アクセス不可
        // this.privateValue = 4; アクセス不可
    }
}

class AccessTest5 {

    // 他ファイル + 他クラス
    AccessTest5() {
        AccessTest1 o = new AccessTest1();
        o.publicValue       = 1;
        // o.protectedValue = 2; アクセス不可
        // o.normalValue    = 3; アクセス不可
        // o.privateValue   = 4; アクセス不可
    }
}
AccessTest4.java

関連記事