InnerAccessTest.java



/** innerクラスのアクセス制御を実験するクラス */
public class InnerAccessTest {

     class InnerClass1 {
          private void print(){
               System.out.println( "InnerClass");
          }
     }

     class InnerClass2 {
          void print(){
               inner1.print();  // エラーにならない
          }
     }

     InnerClass1 inner1;
     InnerClass2 inner2;

     public static void main( String argv[] ) {
          InnerAccessTest test = new InnerAccessTest();
          test.inner1 = test.new InnerClass1();
          test.inner2 = test.new InnerClass2();
          test.inner1.print();  // エラーにならない
          test.inner2.print();
     }
}