亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么把這句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入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

為什么把這句mi.show();刪了就運行成功了呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號