キーワード | 説明 |
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(); }
} }}