位置:首頁 > Java技術 > Java基礎教程 > Java封裝

Java封裝

封裝是四個基本的OOP概念之一。另外三個是繼承,多態和抽象。

封裝是在做一個類中的私有字段,並通過公有方法提供接入字段的技術。如果一個字段被聲明為private,它不能由類外的任何人訪問,從而隱藏了類中的字段。為此,封裝也稱為數據隱藏。

封裝可以被描述為防止代碼和數據由定義在類外的其他代碼隨機訪問的保護屏障。訪問數據和代碼被緊緊通過接口控製。

封裝的主要優點是修改我們的實現的代碼不會破壞其他人誰使用我們的代碼的代碼的能力。有了這個功能封裝提供了可維護性,靈活性和可擴展到我們的代碼。

例子:

讓我們來看看,描繪封裝一個例子:

/* File name : EncapTest.java */
public class EncapTest{

   private String name;
   private String idNum;
   private int age;

   public int getAge(){
      return age;
   }

   public String getName(){
      return name;
   }

   public String getIdNum(){
      return idNum;
   }

   public void setAge( int newAge){
      age = newAge;
   }

   public void setName(String newName){
      name = newName;
   }

   public void setIdNum( String newId){
      idNum = newId;
   }
}

公有方法包括接入點從外部Java世界接入到這個類的字段。通常情況下,這些方法稱為getter和setter方法​​。因此,任何類要訪問的變量應該通過這些getter和setter方法​​訪問它們。

EncapTest類的變量可以如下訪問:

/* File name : RunEncap.java */
public class RunEncap{

   public static void main(String args[]){
      EncapTest encap = new EncapTest();
      encap.setName("James");
      encap.setAge(20);
      encap.setIdNum("12343ms");

      System.out.print("Name : " + encap.getName()+ 
                             " Age : "+ encap.getAge());
    }
}

這將產生以下結果:

Name : James Age : 20

封裝的好處:

  • 一個類的字段可以隻讀作出或隻寫。

  • 一個類可以有完全控製什麼是存儲在它的字段。

  • 一類的用戶不知道如何在類存儲其數據。一個類可以改變一個字段的數據類型和類的使用者不需要更改任何其代碼。