java對象賦值給另一個對象 為什么java需要getter/setter來獲取私有屬性?
為什么java需要getter/setter來獲取私有屬性?好問題。我來回答這個問題。。例如,張三是一個對象,而張三的錢包是他的屬性之一。當然,為了安全起見,張三把錢包藏起來,只有他自己才能看到。換句
為什么java需要getter/setter來獲取私有屬性?
好問題。我來回答這個問題。
。
例如,張三是一個對象,而張三的錢包是他的屬性之一。當然,為了安全起見,張三把錢包藏起來,只有他自己才能看到。換句話說,他的錢包是私人的。張三還有一個兒子:小三子。有了小三子,張三需要給小三子提供一個領取生活費的途徑,而不是直接把錢包暴露給小三子。如果你長大后沒有從小資那里得到很多錢,你就會從小資那里得到很多錢我不知道我有多少份,就像我得了老年癡呆癥一樣。
總之,通過方法操作屬性的根本目的是保護自己的私有屬性不被外部直接訪問。
java里一個私有的屬性如何在其他類里面進行訪問?
由于它是私人財產,因此不建議直接訪問它。通常,提供了訪問私有屬性的方法。這樣,可以在方法中控制對屬性的訪問。
當然,也可以通過反射直接訪問。
我們準備一個包含私有屬性的類
然后通過反射訪問屬性。記住添加aField.setAccessible可訪問(true)此代碼,否則無法訪問私有屬性。
不aField.setAccessible可訪問(正確)
添加aField.setAccessible可訪問謝謝你的邀請。
Public class a{
private int a
Public int getaa(){return a}
}
Public class B擴展了a{
Public int getba(){
return a//編譯時會報告一個錯誤,因為私有屬性不能從B中繼承
}
Public int getba(){
return getaa(),據說它不能被繼承,但是B不能訪問它。屬性本身仍然在B的對象中。例如,使用getba,可以通過繼承的公共方法getaa()獲得a。