本文關(guān)鍵字:java封裝,java信息的封裝,java信息的隱藏,java中的封裝,java的封裝
1 java信息的封裝
封裝指的是將對(duì)象的狀態(tài)信息(屬性)和行為(方法)捆綁為一個(gè)邏輯單元的機(jī)制。
Java中通過將數(shù)據(jù)封裝聲明為私有的(private),再提供一個(gè)或多個(gè)公開的(public)方法實(shí)現(xiàn)對(duì)該屬性的操作,以實(shí)現(xiàn)下述目的:
● 隱藏一個(gè)類的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口,控制在程序中屬性的可讀和修改的訪問級(jí)別。
● 增強(qiáng)安全性,防止對(duì)封裝數(shù)據(jù)的未經(jīng)授權(quán)的訪問。使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對(duì)屬性的不合理操作。
● 有利于保證數(shù)據(jù)的完整性。
● 便于修改,增強(qiáng)代碼的可維護(hù)性。
● 實(shí)現(xiàn)封裝的關(guān)鍵是不要讓方法直接訪問其他類的屬性,程序應(yīng)該只能通過指定的方法與對(duì)象交互數(shù)據(jù)。封裝賦予對(duì)象“黑盒”特性,這是實(shí)現(xiàn)重用性和可靠性的關(guān)鍵。
2 java信息的隱藏
如果允許用戶對(duì)屬性直接訪問,可能會(huì)引起一些不必要的問題,如聲明了一個(gè)Group類表示一個(gè)程序開發(fā)小組,由屬性number來記錄小組成員數(shù)。如果允許程序隨意給number屬性賦值,將值設(shè)置為1000,雖然這在語(yǔ)法上沒有問題,但是,我們知道一個(gè)程序小組不可能有這么多的編程人員。如果在程序的其他部分用到了這個(gè)number屬性,可能出現(xiàn)問題。因此,應(yīng)該將屬性定義為私有的(private),只有類本身才可以訪問這個(gè)屬性,外部程序或者其他類不能訪問它?梢远x一些public或Default方法來訪問這些屬性,在方法中加入一些邏輯判斷的方法來操作屬性。將number的屬性值設(shè)置為2~100之間,小于2人時(shí)計(jì)做兩人,大于100人時(shí)計(jì)做100人。示例如下:
源文件:Group.java
public class Group {
private int number;
public void setNumber(int s_number) {
if (s_number > 100) {
this.number = 100;
} else if (s_number< 2) {
this.number = 2;
} else {
this.number = s_number;
}
}
}
本文選自華清遠(yuǎn)見android開發(fā)培訓(xùn)教材《Android系統(tǒng)下Java編程詳解》