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

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

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

正在回答

6 回答

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

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

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

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

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

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

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

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

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

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

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

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

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

举报

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

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

进入课程

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

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