| キーワード | 説明 |
| public | どのクラスからでも参照可能 |
| private | 同じパッケージ内のコード、または別のパッケージ内のサブクラスにのみアクセス可能 |
| protected | 同じクラス内のコードのみアクセス可能 |
e\E.java
#codeprettify{{ package e;
public class E{
public int e1 = 11; protected int e2 = 22; private int e3 = 33;
} }}
f\F.java
#codeprettify{{ package f; import e.*;
public class F extends E{
public void display() {
//publicメンバにアクセスできる
System.out.println(e1);
//スーパークラスのprotectedメンバにアクセスできる
System.out.println(e2);
//privateメンバにはアクセスできない
//System.out.println(e3);
}
} }}
g\G.java
#codeprettify{{ package g; import e.*;
public class G{
public void display() {
//Eのインスタンスを作成する
E e = new E();
//publicメンバにアクセスする
System.out.println(e.e1);
//protectedメンバにアクセスできない
//System.out.println(e.e2);
//privateメンバにアクセスできない
//なぜって?サブクラスでも同じパッケージ内でもないから
//System.out.println(e.e3);
}
} }}
h\H.java
#codeprettify{{ package h;
import f.F; import g.G;
class ProtectedDemo{
public static void main(String args[]) {
//別パッケージ内のサブクラスをテストする
F f = new F();
f.display();
//別のパッケージ内の非サブクラスをテストする
G g=new G();
g.display();
}
} }}