JAVAチュートリアルマニュアル
/ Java 封裝
Java 封裝
在面向?qū)ο蟪淌皆O(shè)計(jì)方法中,封裝(英語(yǔ):Encapsulation)是指,一種將抽象性函式接口的實(shí)作細(xì)節(jié)部份包裝、隱藏起來(lái)的方法。
封裝可以被認(rèn)為是一個(gè)保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問(wèn)。
要訪問(wèn)該類的代碼和數(shù)據(jù),必須通過(guò)嚴(yán)格的接口控制。
封裝最主要的功能在于我們能修改自己的實(shí)現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。
適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護(hù),也加強(qiáng)了程式碼的安全性。
實(shí)例
讓我們來(lái)看一個(gè)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; } }
以上實(shí)例中public方法是外部類訪問(wèn)該類成員變量的入口。
通常情況下,這些方法被稱為getter和setter方法。
因此,任何要訪問(wèn)類中私有成員變量的類都要通過(guò)這些getter和setter方法。
通過(guò)如下的例子說(shuō)明EncapTest類的變量怎樣被訪問(wèn):
/* 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()); } }
以上代碼編譯運(yùn)行結(jié)果如下:
Name : James Age : 20