为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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


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

正在回答

2 回答

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();
	}
}

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

1 回复 有任何疑惑可以回复我~
#1

玩世明少 提问者

原来是这个意思,谢谢你啦
2016-04-26 回复 有任何疑惑可以回复我~
外部类(one)里有成员A
如果静态内部类(two)要访问外部类里的成员A,那么调用语句就是one().A
这样能理解吗?

0 回复 有任何疑惑可以回复我~
#1

玩世明少 提问者

这个是调用外部静态成员的呀,我是想问调用外部非静态成员的
2016-04-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信