聲明:本文首發於個人我的微信公衆號【Java編程社區】,查看更多文章與學習資源請移步個人公衆號Java編程社區編程
今天咱們來看看面向對象的三大特徵之一——封裝安全
下來咱們從現實生活中的例子來聊聊封裝的特性微信
咱們平常使用的電腦主機,把CPU、內存、主板等等都封裝到機箱裏面去。假如沒有機箱的話出現什麼問題,主機、主板所有都散落在一處,而後開機沒有開機按鈕,那麼須要咱們直接操做跳線才能把電腦開啓。這樣子若是操做不慎的話,機器就有損壞的危險。所以,爲了安全,現實生活中咱們有機箱將CPU、內存、主板等等封裝起來。這樣就體現了封裝的安全性。學習
你拿着電腦去加內存,能夠直接把電腦給維修的人,等他加好內存以後,你拿到的仍是那個機箱,裏面發生了怎樣的變化你並不知道。封裝的第二個好處——將變化隔離spa
在機箱上提供一個開機按鈕,而不須要你直接使用跳線開機的話,體現了封裝的便於使用的特性3d
將這個機箱不管拿到什麼地方,均可以使用開機的功能,體現了封裝的提供重複性的特性。code
咱們在來經過代碼的對比來了解封裝對象
模擬問題token
一、描述Employee類,定義姓名、工號、性別的成員變量和工做的方法ip
二、建立Employee對象,對象.成員的方式進行賦值,最後該對象調用工做的方法。
不使用封裝的狀況
public class EmployeeDemo{ public static void main(String[] args) { //建立對象 Employee employee = new Employee(); employee.name = "zhangsan"; employee.id = "1234"; employee.gender = "男"; //調用成員方法 employee.work(); System.out.println(); //傳入非法的參數 employee.gender = "不是男人"; employee.work(); } } class Employee{ String name; String id; String gender; public void work() { System.out.println(id + ":" + name + ":" + gender + "努力工做中!"); } }
執行結果
使用封裝
設置類的屬性private關鍵字,不能使用對象名.屬性名的方式直接訪問對象的屬性。
總結:若是不使用封裝,很容易賦值錯誤,而且任何人均可以更改,形成信息的不安全。
那麼問題來了
答案是:
請看下邊代碼:
執行結果:
封裝就分享到這了,後續會繼續分享,敬請期待!
聲明:本文首發於個人我的微信公衆號【Java編程社區】,查看更多文章與學習資源請移步個人公衆號Java編程社區