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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我們不能在(非靜態(tài))內(nèi)部類中使用靜態(tài)方法?

為什么我們不能在(非靜態(tài))內(nèi)部類中使用靜態(tài)方法?

慕田峪9158850 2019-08-30 16:33:30
為什么我們不能在非靜態(tài)內(nèi)部類中使用靜態(tài)方法?如果我使內(nèi)部類靜態(tài),它的工作原理。為什么?
查看完整描述

4 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗 獲得超9個贊

因為內(nèi)部類的實例與其外部類的實例隱式關(guān)聯(lián),所以它本身不能定義任何靜態(tài)方法。由于靜態(tài)嵌套類不能直接引用其封閉類中定義的實例變量或方法,因此它只能通過對象引用來使用它們,在靜態(tài)嵌套類中聲明靜態(tài)方法是安全的。


查看完整回答
反對 回復(fù) 2019-08-30
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊

在非靜態(tài)內(nèi)部類中允許靜態(tài)方法沒有多大意義; 你怎么去訪問它?您無法訪問(至少最初)非靜態(tài)內(nèi)部類實例而無需通過外部類實例。創(chuàng)建非靜態(tài)內(nèi)部類沒有純粹的靜態(tài)方法。


對于外部類Outer,您可以訪問如下靜態(tài)方法test():


Outer.test();

對于靜態(tài)內(nèi)部類Inner,您可以innerTest()像這樣訪問其靜態(tài)方法:


Outer.Inner.innerTest();

但是,如果Inner不是靜態(tài)的,那么現(xiàn)在沒有純粹的靜態(tài)方法來引用該方法innertest。非靜態(tài)內(nèi)部類與其外部類的特定實例相關(guān)聯(lián)。函數(shù)與常量不同,Outer.Inner.CONSTANT因為對函數(shù)調(diào)用Outer.Inner.staticFunction();不保證引用是明確的。假設(shè)您有Inner.staticFunction()那些getState()定義的調(diào)用Outer。如果您嘗試調(diào)用該靜態(tài)函數(shù),則現(xiàn)在對Inner類有一個不明確的引用。也就是說,你在內(nèi)部類的哪個實例上調(diào)用靜態(tài)函數(shù)?這很重要。看,由于對外部對象的隱式引用,沒有真正的靜態(tài)方法來引用該靜態(tài)方法。


保羅貝洛拉是正確的,語言設(shè)計師可以允許這樣做。然后,他們必須小心地禁止對非靜態(tài)內(nèi)部類的靜態(tài)方法中對外部類的隱式引用的任何訪問。在這一點上,如果你不能引用外部類,除了靜態(tài)之外,這是一個內(nèi)部類的值是什么?如果靜態(tài)訪問沒問題,為什么不將整個內(nèi)部類聲明為靜態(tài)呢?如果你只是讓內(nèi)部類本身是靜態(tài)的,那么你沒有對外部類的隱式引用,并且你不再有這種歧義。


如果您確實需要非靜態(tài)內(nèi)部類的靜態(tài)方法,那么您可能需要重新考慮您的設(shè)計。


查看完整回答
反對 回復(fù) 2019-08-30
  • 4 回答
  • 0 關(guān)注
  • 843 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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