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

来源:7-7 Java 中的静态内部类

玩世明少

2016-04-26 14:32

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

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


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

写回答 关注

2回答

  • 史普林_克劳德
    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();
    	}
    }

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

    玩世明少

    原来是这个意思,谢谢你啦

    2016-04-26 15:32:46

    共 1 条回复 >

  • 范范不是饭饭yu
    2016-04-26 15:05:45
    外部类(one)里有成员A
    如果静态内部类(two)要访问外部类里的成员A,那么调用语句就是one().A
    这样能理解吗?

    玩世明少

    这个是调用外部静态成员的呀,我是想问调用外部非静态成员的

    2016-04-26 15:08:57

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530553 学习 · 6091 问题

查看课程

相似问题