1. 程式人生 > >【封裝】java中為什麼要將屬性進行私有化,又使用set和get方法來設定和獲取屬性呢?

【封裝】java中為什麼要將屬性進行私有化,又使用set和get方法來設定和獲取屬性呢?

其實這裡體現的就是封裝的思想: 將資料與行為進行分離。

試想, 如果外面的程式可以隨意修改一個類的成員變數,會造成不可預料的程式錯誤, 就象一個人的名字,
不能被外部隨意修改,只能通過各種給定的方法去修改這個屬性。
所以我們將成員變數宣告為private,再通過 public的方法來對這個變數進行訪問。
對一個變數的操作,一般都有讀取和賦值操作,我們分別定義兩個方法來實現這兩種操作:
一個是getXxx()(Xxx 表示要訪問的成員變數的名字),用來獲取這個成員變數;
另外一個是 setXxx()用來對這個成員變數修改。

簡單介紹一下封裝的思想:
1.封裝的概念:封裝就是將屬性私有化,提供公有的方法訪問私有的屬性。
2.實現封裝的步驟:
(1)使用private關鍵字修改屬性的可見性,限制外部方法對屬性的訪問;
(2)為每個屬性建立一對賦值方法和取值方法,就是set和get,用於對這些屬性的訪問;
(3)在賦值和取值方法中,還可以加入對屬性的存取限制。

3.封裝的好處:
(1)隱藏類的實現細節;
(2)讓使用者只能通過事先定製好的方法來訪問資料,可以方便地加入控制方法,限制對屬性的不合理操作;
(3)便於修改,增強程式碼的維護性和健壯性;
(4)提高程式碼的安全性和規範性;
(5)使程式更加具備穩定性和可拓展性。