封裝將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,只能通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問。例如:一臺計算機(jī)內(nèi)部極其復(fù)雜,有主板、CPU、硬盤和內(nèi)存, 而一般用戶不需要了解它的內(nèi)部細(xì)節(jié),不需要知道主板的型號、CPU 主頻、硬盤和內(nèi)存的大小,于是計算機(jī)制造商將用機(jī)箱把計算機(jī)封裝起來,對外提供了一些接口,如鼠標(biāo)、鍵盤和顯示器等,這樣當(dāng)用戶使用計算機(jī)就非常方便。
封裝的特點:
只能通過規(guī)定的方法訪問數(shù)據(jù)。
隱藏類的實例細(xì)節(jié),方便修改和實現(xiàn)。
實現(xiàn)封裝的具體步驟如下:
修改屬性的可見性來限制對屬性的訪問,一般設(shè)為 private。
為每個屬性創(chuàng)建一對賦值(setter)方法和取值(getter)方法,一般設(shè)為 public,用于屬性的讀寫。
填寫下面表單即可預(yù)約申請免費試聽java課程!害怕學(xué)不會?助教陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!
在賦值和取值方法中,加入屬性控制語句(對屬性值的合法性進(jìn)行判斷)。
例 1
下面以一個員工類的封裝為例介紹封裝過程。一個員工的主要屬性有姓名、年齡、聯(lián)系電話和家庭住址。假設(shè)員工類為 Employee,示例如下:
public class Employee { private String name; // 姓名 private int age; // 年齡 private String phone; // 聯(lián)系電話 private String address; // 家庭住址 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { // 對年齡進(jìn)行限制 if (age < 18 || age > 40) { System.out.println("年齡必 須在18到40之間!"); this.age = 20; // 默認(rèn)年齡 } else { this.age = age; } } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
如上述代碼所示,使用 private 關(guān)鍵字修飾屬性,這就意味著除了 Employee 類本身外,其他任何類都不可以訪問這些屬性。但是,可以通過這些屬性的 setXxx() 方法來對其進(jìn)行賦值,通過 getXxx() 方法來訪問這些屬性。
在 age 屬性的 setAge() 方法中,首先對用戶傳遞過來的參數(shù) age 進(jìn)行判斷,如果 age 的值不在 18 到 40 之間,則將 Employee 類的 age 屬性值設(shè)置為 20,否則為傳遞過來的參數(shù)值。
上一篇:Java驗證用戶名和密碼
下一篇: 沒有了
初級會計職稱中級會計職稱經(jīng)濟(jì)師注冊會計師證券從業(yè)銀行從業(yè)會計實操統(tǒng)計師審計師高級會計師基金從業(yè)資格稅務(wù)師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價格鑒證師統(tǒng)計資格從業(yè)
一級建造師二級建造師消防工程師造價工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級造價師監(jiān)理工程師咨詢工程師房地產(chǎn)估價師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評價土地登記代理公路造價師公路監(jiān)理師化工工程師暖通工程師給排水工程師計量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會工作者司法考試職稱計算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護(hù)士資格證初級護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗技師臨床醫(yī)學(xué)理論中醫(yī)理論