7 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個贊
靜態(tài)變量在類被調(diào)用的時候,它就已經(jīng)存在了.地址名就是靜態(tài)變量名(換句話說就是類已經(jīng)幫你把它實(shí)例化好了,不用你再動手用對象去實(shí)例化了),所以普通成員方法(非靜態(tài)方法)和靜態(tài)方法都可直接訪問調(diào)用靜態(tài)變量.因?yàn)樗呀?jīng)創(chuàng)建好擺在那里了.然而非靜態(tài)變量與靜態(tài)變量不同的是它是虛無的,它需要對象去創(chuàng)建出來.所以沒辦法直接訪問.那問題來了,說沒辦法直接訪問,但為什么在普通成員方法中可以直接訪問非靜態(tài)變量呢?哈哈,你想一想,你如果想調(diào)用普通成員方法之前要干嘛?當(dāng)然要new一個對象出來啊,這個new出來的對象就幫你在實(shí)例化方法的同時,把方法中的非靜態(tài)變量也實(shí)例化了。(最后補(bǔ)充一句,被調(diào)用的類只是張圖紙而已,不要把類當(dāng)成程序)

TA貢獻(xiàn)785條經(jīng)驗(yàn) 獲得超332個贊
正如1L所說,你得普通方法對象對應(yīng)非靜態(tài)變量的時候可以說是一對一,就是都是在這一個對象里,而靜態(tài)方法去訪問非靜態(tài)變量就是一對多,因?yàn)殪o態(tài)方法是屬于類的,那你這個類里可以有多個對象呀,那假如我訪問的是我類中并沒有實(shí)例化的對象(內(nèi)存不存在的),那就會保存了呀……

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個贊
1.靜態(tài)方法和靜態(tài)變量在類初始化時已經(jīng)分配內(nèi)存,已經(jīng)存在,因此隨時可以調(diào)用。2.非靜態(tài)方法和非靜態(tài)變量在類初始化時不存在,只有類實(shí)例化成對象時才分配內(nèi)存而存在。3.普通成員方法可以調(diào)用靜態(tài)和非靜態(tài)變量,調(diào)用靜態(tài)原因看第一條;普通成員方法在調(diào)用非靜態(tài)變量時,必須先滿足實(shí)例化才能調(diào)用普通成員方法,一旦實(shí)例化,那非靜態(tài)變量也就分配到內(nèi)存了(原因看第二條)。所以系統(tǒng)不擔(dān)心你在普通成員方法中調(diào)用非靜態(tài)變量,因?yàn)槟阋闷胀ǔ蓡T方法的前提就是實(shí)例化,實(shí)例化就滿足了第二條規(guī)則。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個贊
我理解的是, 因?yàn)殪o態(tài)的 比 非靜態(tài)的 先加載到內(nèi)存,所以靜態(tài)加載完了,非靜態(tài)太的在加載, 靜態(tài)的掉不到非靜態(tài)的東西,因?yàn)榉庆o態(tài)的還沒有加載到內(nèi)存
添加回答
舉報