Java 封裝
在物件導向程式設計方法中,封裝(英文:Encapsulation)是指,一種將抽象性函數介面的實作細節部包裝、隱藏起來的方法。
封裝可以被認為是一個保護屏障,防止該類別的程式碼和資料被外部類別定義的程式碼隨機存取。
要存取該類別的程式碼和數據,必須透過嚴格的介面控制。
封裝最主要的功能在於我們能修改自己的實作程式碼,而不用修改那些呼叫我們程式碼的程式片段。
適當的封裝可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。
實例
讓我們來看一個java封裝類別的範例:
/* 文件名: 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; } }
以上實例中public方法是外部類別存取該類別成員變數的入口。
通常情況下,這些方法被稱為getter和setter方法。
因此,任何要存取類別中私有成員變數的類別都要通過這些getter和setter方法。
透過如下的範例說明EncapTest類別的變數怎麼被存取:
/* F文件名 : 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