qq_慕容8569032
2020-04-22 15:40
为什么把这句mi.show();删了就运行成功了呢?
show是外部的方法,你定义的mi是内部的对象,内部的对象只能调用内部方法,所以下面的mi.getScore就是调用getScore()方法,然后再给mi.getScor赋值给变量newScore
内部类不可以调用外部类的方法。会报错的,用编译器试试你就懂了
show是HelloWorld();的对象不是内部类的对象。
你的MInner类里面根本没有show()这个方法啊,你实例化的是MInner
个人认知----说错的话请谅解
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();
}
}
mi是MInner类的对象 怎么能调用外部类的方法呢 看不到你写的源码 贴一下
Java入门第二季 升级版
530557 学习 · 6091 问题
相似问题