JAVA内部类访问权限

class Outer{

      private  int myI=100;

       private static String name="name outer";

       public void show(){

        system.out.println(“Outer。show”);

      }

        public void test2(){//外部类访问内部类

            Inner ub=new Inner();

            ub.TestInner();   

        }

   public static void test2(){//外部类静态方法访问内部类

      //在外部类的静态方法中实例内部类的对象,必须先创建外部类对象

      Outer outer=new Outer();

      Inner ub=outer.new Inner();//创建内部类对象

      ub.TestInner(); 

  或者

      Inner ub=new Outer.new Inner();//创建内部类对象

      ub.TestInner(); 

 }

  class Inner{

     public void TestInner(){//在内部类访问外部类-实类

        Outer outer=new Outer();

        outer.show();       

        system.out.println(“访问外部类的变量:”+Outer.this.myI);//加上外面类名

        system.out.println(“访问外部类的静态变量:”+Outer.name);//加上外面类名

     }

   }

}


说明​

在其他类方法内访问内部类

      Outer outer=new Outer();

      Outer.Inner ub=outer.new Inner();//创建内部类对象

      ub.TestInner(); 

1、内部类是外部类一个成员,因此内部类可以只有访问外部类的成员变量,无论是否是private。

   内部类中不允许有任何静态声明,

   但可以有静态常量,如static final boolean jj=false。

   不能有静态方法


posted @ 2015-07-25 15:32  Wishmeluck  阅读(648)  评论(0编辑  收藏  举报