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

为什么不能用new +外部类名().属性名呢

https://img1.sycdn.imooc.com//5c77d9860001ea4107240122.jpg

https://img1.sycdn.imooc.com//5c77d98600016e6a06720976.jpg

明明教的就有关这样的信息,但是为什么不行呢?



正在回答

4 回答

而且,截图要截全部,不然不知道你最上面写了什么,你是不是没创建非静态的变量

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

仔细看看,你自己写的错了,教程说的是内部静态类,你的外部是静态类

下面的可以

//外部类

public class HelloWorld {

    

    // 外部类中的静态变量score

    private static int score = 84;

     private int a=66;

    // 创建静态内部类

public   static       class SInner {

        // 内部类中的变量score

        int score = 91;      

public void show() {

System.out.println("访问外部类中的score:" +    new HelloWorld().a   );

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

}

}

// 测试静态内部类

public static void main(String[] args) {

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

        SInner si= new SInner();

    // 调用show方法

si.show();

}

}


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

可以用,没毛病

如果你在慕课网上测试,它会提示运行成功,输出错误,设置问题

自己软件测试就行了,在这上面既然运行成功,看结果也是我们要的,没有错误

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

静态内部类中的方法中的输出错误    new HelloWorld().score   改成   HelloWorld.score

new HelloWorld().score是访问外部类中的给静态成员,访问了你要给他赋值给一个新的变量,就像我图中的变量“b”https://img1.sycdn.imooc.com//5c78078000013db107300374.jpg

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

lucky高

这样好像不能运行成功呢我试了?
2019-03-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不能用new +外部类名().属性名呢

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