为什么把这句mi.show();删了就运行成功了呢?

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

qq_慕容8569032

2020-04-22 15:40

为什么把这句mi.show();删了就运行成功了呢?

写回答 关注

6回答

  • 慕设计7437558
    2020-09-23 11:46:25

    show是外部的方法,你定义的mi是内部的对象,内部的对象只能调用内部方法,所以下面的mi.getScore就是调用getScore()方法,然后再给mi.getScor赋值给变量newScore

  • SteveCode
    2020-05-29 22:45:05

    内部类不可以调用外部类的方法。会报错的,用编译器试试你就懂了

  • 慕慕9044048
    2020-05-23 04:43:48

    show是HelloWorld();的对象不是内部类的对象。

  • 慕哥2085479
    2020-04-29 16:18:00

    你的MInner类里面根本没有show()这个方法啊,你实例化的是MInner

    个人认知----说错的话请谅解

  • qq_慕容8569032
    2020-04-22 16:45:37

    public class HelloWorld {
       
        private String name = "爱慕课";
       
        // 外部类中的show方法
        public void show() {
      // 定义方法内部类
      class MInner {
       int score = 83;
       public int getScore() {
        return score + 10;
       }
      }
           
      // 创建方法内部类的对象
            MInner mi=new MInner();
            mi.show();
            int newScore=mi.getScore();
            // 调用内部类的方法
     
            System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);
     }
       
     // 测试方法内部类
     public static void main(String[] args) {
           
      // 创建外部类的对象
            HelloWorld mo=new HelloWorld();
           
            // 调用外部类的方法
      mo.show();
     }
    }

  • weixin_慕后端8051430
    2020-04-22 16:43:16

    mi是MInner类的对象  怎么能调用外部类的方法呢 看不到你写的源码 贴一下

Java入门第二季 升级版

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

530557 学习 · 6091 问题

查看课程

相似问题