java類的構(gòu)造函數(shù) 靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?
靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?程序最終將在內(nèi)存中執(zhí)行,變量只有在占用內(nèi)存中的某個位置時才能被訪問。類的靜態(tài)成員(變量和方法)屬于類本身,在加載類時會分配內(nèi)存,可以通過類名直接訪問內(nèi)存。
靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?
程序最終將在內(nèi)存中執(zhí)行,變量只有在占用內(nèi)存中的某個位置時才能被訪問。類的靜態(tài)成員(變量和方法)屬于類本身,在加載類時會分配內(nèi)存,可以通過類名直接訪問內(nèi)存。非靜態(tài)成員(變量和方法)屬于類對象,因此只有在生成類對象(創(chuàng)建類實例)然后通過類對象(實例)訪問時才會分配內(nèi)存。在靜態(tài)成員中訪問類的非靜態(tài)成員時出錯的原因是,當(dāng)該類的非靜態(tài)成員不存在時,該類的靜態(tài)成員已經(jīng)存在。當(dāng)然,訪問內(nèi)存中不存在的東西時會出錯:類ca{私人:INTA//非靜態(tài)成員。創(chuàng)建類的實例時,會分配內(nèi)存。一個類的不同實例對應(yīng)不同的內(nèi)存區(qū)域
]相反,應(yīng)該是“一個類的非靜態(tài)成員函數(shù)可以直接訪問該類的靜態(tài)和非靜態(tài)成員”,靜態(tài)成員函數(shù)只能訪問該類的靜態(tài)成員。