第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

為什么執(zhí)行之后會有錯誤

package com.sean;


public class HelloWorld {
?
??? // 內(nèi)部類Inner,類Inner在類HelloWorld的內(nèi)部
??? public class Inner {
??? ?public int a=1;
??// 內(nèi)部類的方法
??? ?
??public void show() {
???System.out.println("welcome to imooc!"+a);
??}
?}
??? {?? HelloWorld p =new HelloWorld();
??????? Inner c=p.new Inner();
??System.out.println(c.a);
?}
?public static void main(String[] args) {
???????
??????? // 創(chuàng)建外部類對象
??HelloWorld hello = new HelloWorld();
??????? // 創(chuàng)建內(nèi)部類對象
??Inner i = hello.new Inner();
??????? // 調(diào)用內(nèi)部類對象的方法
??i.show();
?}
}

正在回答

2 回答

{???HelloWorld?=new?HelloWorld?();
????????Inner?c=p.new?Inner();
????????System.out.println(c.a);
}

這段代碼錯誤,因?yàn)檫@是一個初始化代碼塊,當(dāng)你new一個HelloWorld的時(shí)候,它會執(zhí)行這段代碼,但這段代碼里面由于有new HelloWorld(), 它就會繼續(xù)執(zhí)行初始化代碼塊,然后進(jìn)入了死循環(huán),從而造成內(nèi)存溢出。樓上說的加個static是可取的,因?yàn)閟tatic只會執(zhí)行一次,所以不會造成死循環(huán)。

解決辦法是:加一個static,或者把這段去掉。

1 回復(fù) 有任何疑惑可以回復(fù)我~
{
	HelloWorld?p?=?new?HelloWorld();//有問題
	Inner?c?=?p.new?Inner();
	System.out.println(c.a);
}

這一段會內(nèi)存溢出

每創(chuàng)建一個HelloWorld對象a,a也會創(chuàng)建一個HelloWorld對象b,b.....

你可以把上面這一段去掉或者加上static

static?{
	HelloWorld?p?=?new?HelloWorld();
	Inner?c?=?p.new?Inner();
	System.out.println(c.a);
}

static內(nèi)部代碼所有對象共有。具體很難解釋明白。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么執(zhí)行之后會有錯誤

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號