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

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

為什么這樣不行?用對象外部類調用外部類方法,結果無法執行到內部類方法?

ublic class HelloWorld?

{

? ? // 外部類中的show方法

? ? public void show()?

? ? {?

// 定義方法內部類

? ?final int a=25;

? ? ? ? int b=13;

? ? ? ? class MInner

? ? ? ? {

? ? ? ? ? ? int c=2;

? ? ? ? ? ? public void print()

? ? ? ? ? ? {

? ? ? ? ? ? ?System.out.println("訪問a:"+a);

? ? ? ? ? ? ?System.out.println("訪問c:"+c);

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? public static void main(String[] args)

? ? {

? ? ? ? HelloWorld mo=new HelloWorld();

? ? ? ? mo.show();

? ? }

}


正在回答

7 回答

因為你在show()方法中沒有調用內部類的print()方法;

你可以在show()中生成一個內部類對象,用這個對象調用print()方法;

如:

MInner mi = new MInner();

? ? ? ? mi.print();


0 回復 有任何疑惑可以回復我~
#1

三水朝山 提問者

意思是說,運行只會從對象作為入口運行方法?如果沒有創建內部類對象,其實有方法也無法執行?
2016-05-04 回復 有任何疑惑可以回復我~
#2

慕村5328463 回復 三水朝山 提問者

因為方法內部類的方法的作用域只在內部類中,你無法通過外部類的對象調用內部類方法,而方法必須調用才會執行,而你說的程序入口是在main方法.應該是這樣吧,我也是新手.
2016-05-04 回復 有任何疑惑可以回復我~
#3

三水朝山 提問者 回復 慕村5328463

方法原來是必須調用才能執行。。。
2016-05-04 回復 有任何疑惑可以回復我~

因為你這樣子調用show方法,show方法里面根本就沒做啥事,肯定是空白哦。

0 回復 有任何疑惑可以回復我~
#1

三水朝山 提問者

恩,明白了...
2016-05-04 回復 有任何疑惑可以回復我~
package?sterning;

public?class?HelloWorld?
{
????//?外部類中的show方法
????public?void?show()?
????{?
?????//?定義方法內部類
????????final?int?a=25;
????????int?b=13;
????????class?MInner
????????{
????????????int?c=2;
????????????public?void?print()
????????????{
?????????????System.out.println("訪問a:"+a);
?????????????System.out.println("訪問c:"+c);
????????????}
????????}
????????System.out.println("Yes");
????????MInner?mi=new?MInner();
????????mi.print();
????}
????public?static?void?main(String[]?args)
????{
????????HelloWorld?mo=new?HelloWorld();
????????mo.show();
????}
}


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

同樓上,要想調用內部類的方法,就一定要創建內部類的對象。

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

MInner mi=new MInner();
mi.print();

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

因為沒有new內部類的對象,只能執行到外部方法。

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

因為你在show方法中沒有new出MInner對象,然后調用print()方法。所以才會報錯。

MInner mi=new MInner();
mi.print();

加上這個就好了

0 回復 有任何疑惑可以回復我~
#1

三水朝山 提問者

不會報錯,只會運行空白,我意思是不是在內部類中,一定要先把內部方法作為對象調用出來,然后再通過外部類對象調用外部方法才可以?只調用外部方法是不會執行到內部方法中去的?
2016-05-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這樣不行?用對象外部類調用外部類方法,結果無法執行到內部類方法?

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

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

幫助反饋 APP下載

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

公眾號

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