1. 程式人生 > >關於 java 中的 set,get方法,而為什麼不推薦直接使用public

關於 java 中的 set,get方法,而為什麼不推薦直接使用public

我不知道有沒有人遇到過,有一段時間,我都覺得那些 set,get的用處何在,我直接寫一個public直接拿不就行了,多爽,但是隨著使用的頻繁,越來越想去搜索一下這個問題,而不是按照官方的推薦,前輩們的使用都是建議set,get.

首先,對於網上那些說到的效率問題,真的感覺很喪,一種是通過一個方法去操作,一種是直接操作,把set,get方法開啟來看,不也只是將更改數值的邏輯封裝,僅此而已。 

所以如果要論為什麼使用set,get,而不建議使用public,只能從編碼的角度去討論:

關於這個問題,網上有很多人提到了 封裝性,提到封裝,就不得不提java的修飾符。為了更加嚴謹的解釋 java的三大修飾符,我還 又特地的翻了一下 <java程式設計思想>。

這裡引入其中的一句話:

在任何相互關係中,具有關係所涉及的各方都遵守的邊界是十分重要的事情,當建立一個類庫時,就建立了與客戶端程式設計師之間的關係,他們同樣也是程式設計師,但是他們是使用你的類庫來構建應用,或者構建更大的類庫的程式設計師。如果所有的類成員對任何人都是可用的,那麼客戶端程式設計師就可以對類做任何事情,而不受約束。即使你希望客戶端程式設計師不要直接操作你的類中的某些成員,但是如果沒有任何訪問控制,將無法阻止此事發生。所有的東西都將赤裸裸的暴露在世人面前。

舉一個簡單的例子,我這邊有處理蘋果的邏輯,但是至於怎麼操作,這是我這邊的工作。但是為了讓你也可以操作,我提供了 吃蘋果,和摘蘋果的兩個方法,即get,set。

網上也有說,如果讓你接手一個專案,裡面都是用了 public,那麼對於這個數值的操作,豈不是得又翻一下專案了。

綜上所述,寫到這裡,我誕生了一個想法,其實set ,get ,public,對於它們使用完全取決於我們程式設計師自己,為了讓專案之間的邏輯更加清晰,有些標準自上而下,慢慢的傳了下來,無論你使用那種,但是有一個東西是無法避免的,也就是這個語言的特性,或者說是封裝性,或者說是邊界性。

一些雜談:這些只是來自我一個菜雞自己的想法,當然對於很多大神來說不值一提,可能以後我會有更深入的理解,但是至少,在程式設計師這條路上,不想盲目的去使用一些東西,或者說不想單純只是去聽別人的一些看法。