Java面向?qū)ο笾蓡T隱藏與屬性封裝操作示例
本文實(shí)例講述了Java面向?qū)ο笾蓡T隱藏與屬性封裝操作。分享給大家供大家參考,具體如下:
關(guān)于這個功能的優(yōu)點(diǎn)我現(xiàn)在體會還不深,只是從書本中找到了面向?qū)ο缶幊痰囊粋€原則——盡量讓數(shù)據(jù)私有。如果需要對數(shù)據(jù)的信息進(jìn)行修改或者獲取,不會直接修改成員信息,而是通過方法的調(diào)用來實(shí)現(xiàn)。
寫如下代碼:
packagefengzhuang; class HuaShanPai { private String zhangmen; private int dizishu; private String gongfu; public String getZhangmen() { return zhangmen; } public void setZhangmen(String zhangmen) { this.zhangmen = zhangmen; } public int getDizishu() { return dizishu; } public void setDizishu(int dizishu) { this.dizishu = dizishu; } public String getGongfu() { return gongfu; } public void setGongfu(String gongfu) { this.gongfu = gongfu; } } public class FengZhuang { public static void main(String[] args) { // TODO Auto-generated method stub HuaShanPai huashandizi = new HuaShanPai(); huashandizi.setDizishu(123); huashandizi.setGongfu("紫霞神功"); huashandizi.setZhangmen("岳不群"); System.out.println("華山派弟子人數(shù): " + huashandizi.getDizishu()); System.out.println("華山派功夫: " + huashandizi.getGongfu()); System.out.println("華山派掌門: " + huashandizi.getZhangmen()); } }
運(yùn)行結(jié)果:
華山派弟子人數(shù): 123
華山派功夫: 紫霞神功
華山派掌門: 岳不群
首先,關(guān)于如上代碼值得一說的是方法的實(shí)現(xiàn)。其實(shí),在eclipse中,實(shí)現(xiàn)get以及set的功能是集成了一個自動生成功能的。而代碼中相應(yīng)方法的實(shí)現(xiàn)使用的全都是這個功能。具體的功能再source的菜單欄中,選擇生成getter以及setter選項(xiàng)即可彈出一個對話框。在對話框中勾選自己需要處理的屬性即可。
通過main方法中的代碼可以看出,通過set函數(shù)實(shí)現(xiàn)了對私有屬性的修改,同樣,通過get函數(shù)實(shí)現(xiàn)了對修改后的屬性的獲取。當(dāng)然,關(guān)于屬性的獲取應(yīng)該是什么時候都是可以的。
目前,暫時還不是很清楚這種功能在軟件構(gòu)件上有什么優(yōu)點(diǎn)或者優(yōu)勢。如果有優(yōu)勢的話,其實(shí)在C語言中也可以仿出一些類似的功能,這種技術(shù)倒是可以變相拓展使用到現(xiàn)在工作的軟件構(gòu)建中去。
至于把數(shù)據(jù)私有化,代碼中使用了private關(guān)鍵字對屬性定義進(jìn)行了修飾。這樣,直接通過一個對象的屬性訪問時無法對屬性進(jìn)行獲取或者修改的。通過這種方式,對象所擁有的數(shù)據(jù)表現(xiàn)為一種私有狀態(tài)。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java并發(fā)之條件阻塞Condition的應(yīng)用代碼示例
這篇文章主要介紹了Java并發(fā)之條件阻塞Condition的應(yīng)用代碼示例,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02PageHelper在springboot+mybatis框架中的使用步驟及原理解析
這篇文章主要介紹了PageHelper在springboot+mybatis框架中的使用步驟及原理解析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03Eclipse創(chuàng)建JavaWeb工程的完整步驟記錄
很多新手不知道Eclipse怎么創(chuàng)建Java Web項(xiàng)目,一起來看看吧,這篇文章主要給大家介紹了關(guān)于Eclipse創(chuàng)建JavaWeb工程的完整步驟,需要的朋友可以參考下2023-10-10為何HashSet中使用PRESENT而不是null作為value
這篇文章主要介紹了為何HashSet中使用PRESENT而不是null作為value,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10教你如何用Jenkins自動化部署項(xiàng)目(從零到搭建完成)
這篇文章主要介紹了教你如何用Jenkins自動化部署項(xiàng)目(從零到搭建完成),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10解析springBoot-actuator項(xiàng)目構(gòu)造中health端點(diǎn)工作原理
這篇文章主要介紹了springBoot-actuator中health端點(diǎn)工作原理,對spring-boot-actuator的項(xiàng)目構(gòu)造,工作原理進(jìn)行了全面的梳理,側(cè)重health健康檢查部分2022-02-02