為什麼java需要getter setter來獲取私有屬性?

時間 2021-06-02 10:38:11

1樓:

這個屬於封裝設計的一種濫用,約定俗成,但scala就定義了data,如果說有用,只有需要對操作進行改變而不影響原有引用者的時候才有用,比如password,原來明文不馬虎,後來base64,只需要在set上加密,get上解密即可,不需要呼叫者修改

2樓:XenoAmess

你要只是寫著玩或者這個類final掉不打算讓人繼承就沒問題。

否則的話你考慮下如果乙個哥們想繼承你的類,改改邏輯,怎麼改。。

3樓:我可能中不了獎了

當你的屬性出現意外值的時候,你可以在setter getter中打斷點,檢視在什麼地方它被修改了。如果沒有setter getter的話那你只有乙個地方乙個地方挨著打斷點了。

4樓:John Doe

這樣搞很舒服,呼叫的時候一目了然,直接乙個點的訪問方式,你怎麼知道這個屬性是不是唯讀?還要去rtfm,用getter setter都不用看文件了。

5樓:臨淵zzz

為什麼食堂要每個視窗放乙個大媽來打飯,而不是讓我們自己伸手抓?

為什麼銀行櫃檯都有櫃員辦理大額轉賬業務,而不是讓我們自己伸手進去拿錢?

還不是為了安全。。。

6樓:吳京潤

有些時候需要唯讀或只寫屬性,這樣的屬性就只需要getter或setter,但是很多屬性既要讀又要寫,為了風格一致,就同時出現getter setter。

一般情況,貧血模型,為了省事,就一律定義成讀寫屬性,但是這樣不夠oo。說這樣不夠oo是因為不符合現實世界的狀況。

個人理解。

getter 和 setter 方法有什麼意義?

回答都是不會說人話的,乙個個說著那麼抽象的名詞,像我這種菜雞聽得懂嗎?怒答 比如你定義了乙個正方形的 class,在其內部宣告了周長和每條邊長度的變數,那麼你使用 square sideLength 3 將長方形的邊長改為3,但周長的值沒有相應地改變那麼這個操作的後果就是在邊長的值被改變後,周長的值...

學習Java過程中覺得深入java需要花費大量時間,是否應該先擱置Java的學習轉而學習C ?

Cappuccino 這兩個語言基礎語法上乙個稍稍簡單,乙個比較複雜,給人一種錯覺。用久了,想要提高,都不簡單。而且,差不多的情況下,C 更複雜 蘇維 竟然真有人覺得c 無法精通 太可怕了。逃 判斷是否精通一門程式語言的方法大概是通用的 當有任何想法時,能用任一門語言當前範圍內最佳的方式表達出來,就...

為什麼java中要做IntegerCache這種設定?

Night Silent 所以 Integer 之類的包裝類都實現了 Comparable 介面啊,使用 compareTo 比較 Integer 就妥妥的 如果不按照設計意圖,而使用 比較,那就是坑了。Compares two objects numerically.param anotherIn...