java set方法 為什么java需要getter/setter來獲取私有屬性?
為什么java需要getter/setter來獲取私有屬性?題主好,我來回答這個(gè)問題。首先,通過g/s來獲取私有屬性的值,是javaBean規(guī)范中的一條,主要是為了把對(duì)象私有的那點(diǎn)小秘密藏起來,避免被
為什么java需要getter/setter來獲取私有屬性?
題主好,我來回答這個(gè)問題。
首先,通過g/s來獲取私有屬性的值,是javaBean規(guī)范中的一條,主要是為了把對(duì)象私有的那點(diǎn)小秘密藏起來,避免被壞人看到。
舉例說明,張三是一個(gè)對(duì)象,張三的錢包是他的一個(gè)屬性,當(dāng)然張三為了安全起見,會(huì)把錢包藏起來,只有自己能看到,也就是說,錢包是private的。張三還有個(gè)坑爹兒子:小三子。因?yàn)橛辛诵∪?,張三就需要提供一個(gè)供小三子領(lǐng)生活費(fèi)的方法,而不是直接把錢包暴露給小三子。因?yàn)椋苯颖┞督o小三子的話,會(huì)有以下幾個(gè)問題:
1、張三控制不住小三子拿錢,萬一拿去買了游戲皮膚就不好了;
2、張三有多少錢,都可以被小三子看到,但是很多時(shí)候,張三是不希望被小三子看到的(例如私房錢);
3、小三子長(zhǎng)大以后給張三生活費(fèi),給了多少?gòu)埲膊恢?,就好像得了老年癡呆一樣。
總之,通過方法來操作屬性的根本目的就是為了保護(hù)自己的私有屬性,不被外部直接訪問。