本文實(shí)例講述了java面向?qū)ο笾蓡T隱藏與屬性封裝操作。分享給大家供大家參考,具體如下:
關(guān)于這個(gè)功能的優(yōu)點(diǎn)我現(xiàn)在體會(huì)還不深,只是從書本中找到了面向?qū)ο缶幊痰囊粋€(gè)原則——盡量讓數(shù)據(jù)私有。如果需要對(duì)數(shù)據(jù)的信息進(jìn)行修改或者獲取,不會(huì)直接修改成員信息,而是通過方法的調(diào)用來實(shí)現(xiàn)。
寫如下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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的功能是集成了一個(gè)自動(dòng)生成功能的。而代碼中相應(yīng)方法的實(shí)現(xiàn)使用的全都是這個(gè)功能。具體的功能再source的菜單欄中,選擇生成getter以及setter選項(xiàng)即可彈出一個(gè)對(duì)話框。在對(duì)話框中勾選自己需要處理的屬性即可。
通過main方法中的代碼可以看出,通過set函數(shù)實(shí)現(xiàn)了對(duì)私有屬性的修改,同樣,通過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語言中也可以仿出一些類似的功能,這種技術(shù)倒是可以變相拓展使用到現(xiàn)在工作的軟件構(gòu)建中去。
至于把數(shù)據(jù)私有化,代碼中使用了private關(guān)鍵字對(duì)屬性定義進(jìn)行了修飾。這樣,直接通過一個(gè)對(duì)象的屬性訪問時(shí)無法對(duì)屬性進(jìn)行獲取或者修改的。通過這種方式,對(duì)象所擁有的數(shù)據(jù)表現(xiàn)為一種私有狀態(tài)。
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
原文鏈接:https://blog.csdn.net/grey_csdn/article/details/64617889