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

请问这是哪里错了

package abc;


public class HelloWorld {

private static int score=87;

public class appcf{

int score=68;

public void abc() {

System.out.println("外部类score:"+HelloWorld.score);

System.out.println("内部类score:"+score);

}

}

public static void main(String[]args) {

appcf o=new appcf();

o.abc();

}

}


正在回答

3 回答

貌似你在定义appcf类的时候没有设置静态static,在System.out.println();中输出的是直接外部类.静态成员变量,造成你的报错,如果是你这样进行写跟楼上的this.成员变量才对,他这是引用的不是静态的成员变量的用法;也是刚开始学学,相互比较得出的,清指教;

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

public class HelloWorld {

private static int score=87;

public class appcf{

int score=68;

public void abc() {

System.out.println("外部类score:"+HelloWorld.this.score);

System.out.println("内部类score:"+score);

}

}

public static void main(String[]args) {

HelloWorld hello = new HelloWorld();

appcf o=hello.new appcf();

o.abc();

}

}


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

应该是System.out.println("外部类score:"+HelloWorld.score);这句有问题

我觉得应该改成System.out.println("外部类score:"+HelloWorld.this.score);

我也是刚好学到这儿

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

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530083    人
  • 解答问题       6086    个

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

进入课程

请问这是哪里错了

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