![[PukiWiki] [PukiWiki]](image/pukiwiki.png) 
 | キーワード | 説明 | 
| 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();
   }
} }}