Java學習筆記——封裝

聲明:本文首發於個人我的微信公衆號【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 + "努力工做中!");
    }
}

執行結果

clipboard.png

使用封裝

設置類的屬性private關鍵字,不能使用對象名.屬性名的方式直接訪問對象的屬性。

clipboard.png

總結:若是不使用封裝,很容易賦值錯誤,而且任何人均可以更改,形成信息的不安全。

那麼問題來了

  • 爲何以前能夠經過對象名.屬性名的方式訪問?
  • 使用private修飾屬性後,沒法在類外邊調用,那麼如何給屬性賦值?

答案是:

  • public修飾符是公共的,誰均可以訪問
  • private修飾符是私有的,只有本身能夠訪問
  • 屬性被private修飾後,咱們能夠經過get,set方法對屬性進行設值和取值

請看下邊代碼:

clipboard.png

clipboard.png

執行結果:

clipboard.png

封裝就分享到這了,後續會繼續分享,敬請期待!

聲明:本文首發於個人我的微信公衆號【Java編程社區】,查看更多文章與學習資源請移步個人公衆號Java編程社區

相關文章
相關標籤/搜索