请问这是哪里错了

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

PG_one

2017-10-10 23:22

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回答

  • 慕田峪830262
    2018-01-02 23:05:13

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

  • 柯子KE
    2017-11-09 20:42:17

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

    }

    }


  • 豆儿贼
    2017-10-10 23:39:40

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

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

    我也是刚好学到这儿

Java入门第二季 升级版

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

530099 学习 · 6086 问题

查看课程

相似问题