塑料中文是什么意思 為什么java需要getter/setter來獲取私有屬性?
為什么java需要getter/setter來獲取私有屬性?好問題。我來回答這個問題。。例如,張三是一個對象,而張三的錢包是他的屬性之一。當(dāng)然,為了安全起見,張三把錢包藏起來,只有他自己才能看到。換句
為什么java需要getter/setter來獲取私有屬性?
好問題。我來回答這個問題。
。
例如,張三是一個對象,而張三的錢包是他的屬性之一。當(dāng)然,為了安全起見,張三把錢包藏起來,只有他自己才能看到。換句話說,他的錢包是私人的。張三還有一個兒子:小三子。有了小三子,張三需要給小三子提供一個領(lǐng)取生活費的途徑,而不是直接把錢包暴露給小三子。因為,直接接觸小三子,會出現(xiàn)以下問題:
1。張三控制不住小三子的拿錢,萬一他買了游戲,他的皮膚會變差的。張三有多少錢可以被小三子看到,但很多時候,張三不想被小三子看到(比如私房錢)。小三子長大后,他會給張三生活費和錢,我不知道我有多少本,就像我得了老年癡呆癥一樣。
總之,通過方法操作屬性的根本目的是保護自己的私有屬性不被外部直接訪問。
getter和setter方法有什么意義?
getter和setter是很好的中間層。stackoverflow的一個很好的總結(jié):OOP-為什么要使用getter和setter?這兩種方法可以很容易地添加附加功能(如驗證)。內(nèi)部存儲和外部性能是不同的。在保持外部接口不變的情況下,可以修改內(nèi)部存儲模式和邏輯。任何管理變量的生命周期和內(nèi)存存儲模式。提供調(diào)試接口。它可以與仿真對象、序列化和WPF庫集成。允許繼承者更改語義。getter和setter可用于lambda表達式。Getter和setter可以有不同的訪問級別。