簡談Java語言的封裝

簡談Java語言的封裝

封裝的定義

封裝將複雜模塊或系統的邏輯實現細節隱藏,讓使用者只須要關心這個模塊或系統怎麼使用,而不用關心這個模塊或系統是怎麼實現的。編程

在面向對象的的編程中,咱們通常經過接口來描述某個系統或模塊具體什麼功能。安全

舉個通俗的例子:電視機的內部構造是極其複雜的,在須要對電視機進行「換臺」操做時,就須要操控電視機中的許多部件,最終才能實現換臺這個行爲,而普通用戶根本沒法完成這樣複雜的工做。所以,電視機的生產廠家就把這些功能封裝起來,對用戶僅僅配備一個接口:那就是遙控器!用戶僅須要經過遙控器簡單觸發按鈕,即可以實現複雜的操做,而不須要去了解電視機的內部構造及工做原理。學習

Java的封裝示例

出於信息安全的考慮,咱們在定義屬性的時候就須要將其的權限設置爲私有(private);而設置爲私有的屬性就不能被外部類訪問了,如何解決?測試

這時就能夠將這些私有屬性封裝起來,對外部類僅開放幾個簡單接口來實現須要功能。this

再者,如若某個類的功能多,代碼量巨大,這時就能夠對外部提供幾個簡單的接口來實現功能(如輸入輸出),使用者無需知道實現功能的內部原理是什麼。spa

下面作一個簡單的示例:對象

第一個類:封裝類接口

package 封裝示例;

public class fengzhuang {
   private String num;
   private String name;
   private int age;
   private char sex;

   public String getNum() {
       return num;
  }

   public void setNum(String num) {
       this.num = num;
  }

   public String getName() {
       return name;
  }

   public void setName(String name) {
       this.name = name;
  }

   public int getAge() {
       return age;
  }

   public void setAge(int age) {
       this.age = age;
  }

   public char getSex() {
       return sex;
  }

   public void setSex(char sex) {
       this.sex = sex;
  }

   public void print(){
       System.out.println("num: "+num+"\nname: "+name+"\nage: "+age+"\nsex: "+sex);
  }
}

第二個類:測試類,使用封裝類提供的接口完成功能get

package 封裝示例;

public class test {
   public static void main(String[] args) {
       fengzhuang fz=new fengzhuang();
       fz.setNum("001");
       fz.setName("Jane");
       fz.setAge(21);
       fz.setSex('F');
       fz.print();
  }
}

以上代碼中,變量num,name,age,sex都是私有屬性,外部類沒法訪問到,此時經過封裝類提供的接口來操做這些變量。string

相關文章
相關標籤/搜索