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

、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 ,这是什么意思?能否举例说明下,谢谢!

静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问,这是什么意思?能否剧烈说明下,谢谢!

正在回答

2 回答

就像这样:

public class HelloWorld {

   //外部类中的非静态变量dynamic_score

   private int dynamic_score = 77;

    // 创建静态内部类

public static class SInner {

        // 内部类中的变量score

        int score = 91;

        

public void show() {

System.out.println("访问外部类中的非静态变量dynamic_score:" +  new HelloWorld().dynamic_score);

System.out.println("访问内部类中的score:" + score);

}

}

// 测试静态内部类

public static void main(String[] args) {

// 直接创建内部类的对象

        SInner si = new SInner();   

        // 调用show方法

si.show();

}

}


6 回复 有任何疑惑可以回复我~

记住一个原则,静态的只能访问静态的,因为他们在对象没创建前就存在了.

如果想访问非静态的则必须初始化该对象,因为只有初始化后对象在内存才存在(静态的除外)

7 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 ,这是什么意思?能否举例说明下,谢谢!

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