3 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
正如Java編譯中提到的:
在 Java 中,如果您使用了對(duì)任何其他 java 對(duì)象的任何引用,那么該對(duì)象的類將被自動(dòng)編譯(如果尚未編譯)。這些自動(dòng)編譯是嵌套的,并一直持續(xù)到編譯運(yùn)行程序所需的所有類為止。所以通常只編譯高級(jí)類就足夠了,因?yàn)樗幸蕾嚨念惗紩?huì)被自動(dòng)編譯。
所以,總的來說你是對(duì)的。
使用嵌套類的原因是什么?嵌套類Oracle教程說:
使用嵌套類的令人信服的原因包括:
這是一種對(duì)僅在一個(gè)地方使用的類進(jìn)行邏輯分組的方法:如果一個(gè)類僅對(duì)另一個(gè)類有用,那么將其嵌入該類并將兩者放在一起是合乎邏輯的。嵌套這樣的“幫助類”使它們的包更加精簡。
它增加了封裝性:考慮兩個(gè)頂級(jí)類 A 和 B,其中 B 需要訪問 A 的成員,否則這些成員將被聲明為私有。通過將類 B 隱藏在類 A 中,可以將 A 的成員聲明為私有的,并且 B 可以訪問它們。此外,B 本身可以對(duì)外界隱藏。
它可以導(dǎo)致代碼更易讀和更可維護(hù):在頂級(jí)類中嵌套小類可以使代碼更接近使用它的位置。
這適用于所有嵌套類,包括靜態(tài)類。

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
類的靜態(tài)組件總是在類的實(shí)例組件之前編譯。如您所想,編譯從上到下進(jìn)行,但針對(duì)不同類型的組件(靜態(tài)塊、常量、實(shí)例變量、構(gòu)造函數(shù)......)進(jìn)行多次
這個(gè)答案給出了另一個(gè)很好的例子:explain java compile order

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
您正在聲明 Node 類型的變量(未調(diào)用),然后編譯器查找 Node 類型。當(dāng)您將 Node 定義為靜態(tài)內(nèi)部類(或內(nèi)部類)時(shí),編譯器就會(huì)知道節(jié)點(diǎn)的真正含義。java 類中成員的順序無關(guān)緊要。
添加回答
舉報(bào)