アクセス修飾子は、外部のクラスやパッケージからアクセスの制限を指定するものです。主なアクセス修飾子の制限の範囲を覚えておきましょう。

問題 - アクセス修飾子「難易度:低」

次のように、3つのメンバ変数name、email、telをもつPersonクラスがあります。3つのメンバ変数にはそれぞれpublic修飾子、protected修飾子、private修飾子が付けられています。

public class Person {
    public String name;
    protected String email;
    private String tel;
}

同一パッケージの別のクラスから、次のようにPersonクラスを生成し、各メンバ変数に値をセットしようと思います。さて、3つのメンバ変数の中でセットできないものはどれでしょうか?

Person tanaka = new Person();
tanaka.name = "田中";
tanaka.email = "xxx@xxx.xxx.xxx";
tanaka.tel = "999-9999-9999";

アクセス修飾子は、外部のクラスやパッケージからアクセスの制限を指定するものです。主なアクセス修飾子の制限の範囲を覚えておきましょう。

問題 - アクセス修飾子「難易度:低」

次のように、3つのメンバ変数name、email、telをもつPersonクラスがあります。3つのメンバ変数にはそれぞれpublic修飾子、protected修飾子、private修飾子が付けられています。

public class Person {
    public String name;
    protected String email;
    private String tel;
}

同一パッケージの別のクラスから、次のようにPersonクラスを生成し、各メンバ変数に値をセットしようと思います。さて、3つのメンバ変数の中でセットできないものはどれでしょうか?

Person tanaka = new Person();
tanaka.name = "田中";
tanaka.email = "xxx@xxx.xxx.xxx";
tanaka.tel = "999-9999-9999";

解答

セットできないメンバ変数はprivate修飾子のついた変数tel。

解説

private修飾子は、クラス内のアクセスのみを許可するアクセス修飾子です。外部のクラスからはアクセスすることができません。public修飾子とprotected修飾子は同一パッケージの外部クラスからのアクセスを許可します。protected修飾子は他のパッケージからのアクセスは禁止しますが、public修飾子は、他のパッケージからのアクセスも許可します。