java的成員變量是什么 既然Java反射可以訪問和修改私有成員變量,那封裝成private還有意義么?
既然Java反射可以訪問和修改私有成員變量,那封裝成private還有意義么?我很高興回答你的問題。一般來說,隱私只是一種協(xié)議。在Java中同類中的靜態(tài)方法能否調(diào)用類成員變量呢?為什么?不,因?yàn)镴av
既然Java反射可以訪問和修改私有成員變量,那封裝成private還有意義么?
我很高興回答你的問題。
一般來說,隱私只是一種協(xié)議。
在Java中同類中的靜態(tài)方法能否調(diào)用類成員變量呢?為什么?
不,因?yàn)镴ava中的靜態(tài)內(nèi)容是類級別的,也就是說,可以用類名或任何對象名訪問它們。無論以何種形式訪問,它們都是同一事物。一般來說,成員變量是指對象層次,即每個(gè)對象所擁有的成員變量是獨(dú)立的、不同的,屬于對象本身。與訪問范圍相比,它更為靜態(tài),靜態(tài)可以被任何對象訪問并且是相同的,成員變量是每個(gè)對象所擁有的。所以,為什么“靜態(tài)方法不能調(diào)用類成員變量”是因?yàn)橐L問成員變量,必須有一個(gè)“實(shí)例化對象”。除非在靜態(tài)方法中創(chuàng)建當(dāng)前類的實(shí)例對象,否則不能直接調(diào)用成員變量,因?yàn)樗恢莱蓡T變量屬于哪個(gè)實(shí)例對象。在成員方法中,可以確定屬于該成員的所有變量和方法屬于同一個(gè)對象,這可以用來表示當(dāng)前對象。