为什么newScore不能做方法内部类的对象啊??

来源:7-8 Java 中的方法内部类

等风吹c

2018-07-05 19:36

public class HelloWorld {

    

    private String name = "爱慕课";

    

    // 外部类中的show方法

    public void show() { 

// 定义方法内部类

class MInner {

int score = 83;

public int getScore() {

return score + 10;

}

}

        

// 创建方法内部类的对象

        MInner newScore=new MInner();

        

        // 调用内部类的方法

newScore.getScore();

        

System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);

}

    

// 测试方法内部类

public static void main(String[] args) {

        

// 创建外部类的对象

        HelloWorld mo=new HelloWorld();

        

        // 调用外部类的方法

mo.show();

}

}


写回答 关注

4回答

  • 芥子晴空
    2018-07-27 16:51:26

    // 创建方法内部类的对象

        MInner i = new MInner();

    // 调用内部类的方法

       int newScore = i.getScore();


  • 薛某某的猫
    2018-07-15 22:41:44

    你好,按照题目的意思newScore应该是一个int型的变量,所以你的MInner newScore=new MInner();语句不正确,创建的对象名不能是newScore。你可以改下例如改为MInner mi=new MInner();即创建一个名为mi的方法内部类对象,然后声明一个题目要求的名为newScore的int变量接受方法返回值, 即int newScore =im.getScore();

  • 慕虎4594652
    2018-07-09 21:26:30

    你确定你这样创建内部类对象 有意义吗 为什么不在main函数里创建呢?


    等风吹c

    有意义啊,MInner是非静态的内部类,main是静态的,所以不能在主函数里创建,我上面程序输出错误,int newScore=me.getScore();输出newScore就行了

    2018-07-11 16:19:58

    共 1 条回复 >

  • 等风吹c
    2018-07-05 19:41:28

    好像明白了,这样输出的只是对象名,并没有输出方法的结果 ,,

Java入门第二季 升级版

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

530649 学习 · 6091 问题

查看课程

相似问题