JAVA 封裝
JAVA封裝
封裝是一種可以使類中的欄位私有並能通過公有方法來訪問私有欄位的技術。如果一個欄位被聲明為私有,它就不能在類的外部被訪問,從而隱藏了類內部的欄位。基於這個原因,封裝有時也被稱為數據隱藏。
封裝可以被認為是一種能夠保護代碼和數據被定義在類外的其它代碼任意訪問的屏障。訪問數據和代碼由一個介面嚴格控制。
封裝的主要好處是修改我們實現的代碼而又不會破壞其他人使用我們的代碼。封裝的這個特性使我們的代碼具有可維護性、靈活性以及擴展性。
示例
如下是一個使用了封裝的例子:
/* 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;
}
}
公有方法是從類外訪問到類內欄位的入口。通常情況下,這些方法被定義為 getters 和 setters 。因此想要訪問類內變數的任何其他類要使用 getters 和 setters 方法。
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("{}ms");
" Age : "+ encap.getAge());
}
}
這將產生下述結果:
Name : James Age : 20
封裝的優點
類中的欄位可以被設置為只讀或只寫。
類可以完全控制它欄位裡面所存儲的東西。
類的使用者不用知道類是如何存儲數據的。類可以改變欄位的數據類型而類的使用者不需要改變任何之前的代碼。
※Java 新手問題匯總 一1
※Java 繼承
※11本Java程序員必讀的書
※給JAVA,說句公道話
※全面解析Java註解
TAG:java吧 |