问答详情
源自:7-7 Java 中的静态内部类

静态内部类访问外部类的非静态成员的疑问

静态内部类是 static 修饰的内部类,这种内部类的特点是:

1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 


上面是摘抄课程的讲义,我还是不明白具体是怎么访问的,能举个例子吗?

提问者:玩世明少 2016-04-26 14:32

个回答

  • 史普林_克劳德
    2016-04-26 15:12:54
    已采纳

    package pac;
    public class Test {
        
    	 // 外部类中的静态变量score
        private static int score = 84;
        private int a=1;                  ////////////这里是外部非静态成员
        // 创建静态内部类
    	public   static    class SInner {
            // 内部类中的变量score
            int score = 91;
            Test ce=new Test();          /////////////这里new一个  
    		public void show() {
    	          System.out.println("访问外部类中的a:" +ce.a   );/////这里通过外部类().成员访问
    	          System.out.println("访问内部类中的score:" + score);
    		}
    	}
    
    	// 测试静态内部类
    	public static void main(String[] args) {
    		// 直接创建内部类的对象
            SInner si= new SInner();
            
            // 调用show方法
    		si.show();
    	}
    }

    看看是不是这样的,这是我的理解

  • 范范不是饭饭yu
    2016-04-26 15:05:45

    外部类(one)里有成员A
    如果静态内部类(two)要访问外部类里的成员A,那么调用语句就是one().A
    这样能理解吗?