Java面向?qū)ο笾蓡T隱藏與屬性封裝操作示例
本文實(shí)例講述了Java面向?qū)ο笾蓡T隱藏與屬性封裝操作。分享給大家供大家參考,具體如下:
關(guān)于這個(gè)功能的優(yōu)點(diǎn)我現(xiàn)在體會(huì)還不深,只是從書(shū)本中找到了面向?qū)ο缶幊痰囊粋€(gè)原則——盡量讓數(shù)據(jù)私有。如果需要對(duì)數(shù)據(jù)的信息進(jìn)行修改或者獲取,不會(huì)直接修改成員信息,而是通過(guò)方法的調(diào)用來(lái)實(shí)現(xiàn)。
寫(xiě)如下代碼:
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("華山派掌門(mén): " + huashandizi.getZhangmen());
}
}
運(yùn)行結(jié)果:
華山派弟子人數(shù): 123
華山派功夫: 紫霞神功
華山派掌門(mén): 岳不群
首先,關(guān)于如上代碼值得一說(shuō)的是方法的實(shí)現(xiàn)。其實(shí),在eclipse中,實(shí)現(xiàn)get以及set的功能是集成了一個(gè)自動(dòng)生成功能的。而代碼中相應(yīng)方法的實(shí)現(xiàn)使用的全都是這個(gè)功能。具體的功能再source的菜單欄中,選擇生成getter以及setter選項(xiàng)即可彈出一個(gè)對(duì)話框。在對(duì)話框中勾選自己需要處理的屬性即可。
通過(guò)main方法中的代碼可以看出,通過(guò)set函數(shù)實(shí)現(xiàn)了對(duì)私有屬性的修改,同樣,通過(guò)get函數(shù)實(shí)現(xiàn)了對(duì)修改后的屬性的獲取。當(dāng)然,關(guān)于屬性的獲取應(yīng)該是什么時(shí)候都是可以的。
目前,暫時(shí)還不是很清楚這種功能在軟件構(gòu)件上有什么優(yōu)點(diǎn)或者優(yōu)勢(shì)。如果有優(yōu)勢(shì)的話,其實(shí)在C語(yǔ)言中也可以仿出一些類似的功能,這種技術(shù)倒是可以變相拓展使用到現(xiàn)在工作的軟件構(gòu)建中去。
至于把數(shù)據(jù)私有化,代碼中使用了private關(guān)鍵字對(duì)屬性定義進(jìn)行了修飾。這樣,直接通過(guò)一個(gè)對(duì)象的屬性訪問(wèn)時(shí)無(wú)法對(duì)屬性進(jìn)行獲取或者修改的。通過(guò)這種方式,對(duì)象所擁有的數(shù)據(jù)表現(xiàn)為一種私有狀態(tài)。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
springboot如何靜態(tài)加載@configurationProperties
這篇文章主要介紹了springboot如何靜態(tài)加載@configurationProperties,本文一個(gè)錯(cuò)誤案例和成功案例結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
springboot項(xiàng)目打docker鏡像實(shí)例(入門(mén)級(jí))
最近做個(gè)項(xiàng)目,我們想把自己的程序打包成鏡像,并運(yùn)行在docker容器中,本文主要介紹了springboot項(xiàng)目打docker鏡像實(shí)例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
解決IDEA中Maven下載依賴包過(guò)慢或報(bào)錯(cuò)的問(wèn)題
由于公司項(xiàng)目迭代,越來(lái)越多的項(xiàng)目開(kāi)始轉(zhuǎn)型新版本,由于我對(duì)Java一直不感冒,但要順應(yīng)公司項(xiàng)目要求,遂自己要逐步開(kāi)始完善Java相關(guān)的知識(shí)層面,此篇是我在學(xué)習(xí)SpringBoot時(shí)對(duì)一些不懂地方及遇到問(wèn)題時(shí)的記錄,需要的朋友可以參考下2024-02-02
Java中的NumberFormatException異常原因以及解決方案詳解
這篇文章主要介紹了Java中的NumberFormatException異常原因以及解決方案詳解,NumberFormatException 是 Java 中的一個(gè)異常類,通常在字符串轉(zhuǎn)換為數(shù)字的過(guò)程中發(fā)生,它表示一個(gè)無(wú)效的數(shù)字格式,即字符串無(wú)法被正確解析為數(shù)字,需要的朋友可以參考下2024-02-02
Spring整合quartz做定時(shí)任務(wù)的示例代碼
這篇文章主要介紹了在spring項(xiàng)目使用quartz做定時(shí)任務(wù),首先我這里的項(xiàng)目已經(jīng)是一個(gè)可以跑起來(lái)的完整項(xiàng)目,web.xml里面的配置我就不貼出來(lái)了,具體實(shí)例代碼跟隨小編一起看看吧2022-01-01
swagger2和knife4j的詳細(xì)使用教程(入門(mén)級(jí))
最近項(xiàng)目中用到了Swagger2和knife4j作為接口文檔,所以下面這篇文章主要給大家介紹了關(guān)于swagger2和knife4j的詳細(xì)使用教程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
淺析Java關(guān)鍵詞synchronized的使用
Synchronized是java虛擬機(jī)為線程安全而引入的。這篇文章主要為大家介紹一下Java關(guān)鍵詞synchronized的使用與原理,需要的可以參考一下2022-12-12

