- class Outer
- {
- private static int x = 3;
- class Inner//静态内部类
- {
- void function()//静态内部类静态方法
- {
- System.out.println("innner :"+x);//省略Outr.this.
- }
- }
- static class Inner2
- {
- void show()//静态内部类非静态方法
- {
- System.out.println("inner2 show");
- }
- }
- public static void method()
- {
- //Inner.function();//静态可直接访问
- new Inner2().show();//静态访问非静态方法必须建立对象访问
- }
- }
- class InnerClassDemo2
- {
- public static void main(String[] args)
- {
- /*Outer.method();//外部类直接访问其成员
- Outer.Inner.function();//直接访问静态内部类静态方法
- new Outer.Inner2().show();//直接访问静态内部类中的非静态成员。*/
- Outer.Inner in = new Outer().new Inner();
- //当内部类定义在外部类的成员位置上,而且非私有,直接建立内部类对象访问
- in.function();
- }
- }
复制代码 看了代码可能你的疑惑将解开 |