封裝性的概念與操作方法
封裝性是面向?qū)ο笏枷氲娜筇卣髦唬ㄆ渌麅蓚€特性是繼承和多態(tài))。
封裝就是隱藏實現(xiàn)細(xì)節(jié),僅對外提供訪問接口。
封裝有:屬性的封裝、方法的封裝、類的封裝、組件的封裝、模塊化封裝、系統(tǒng)級封裝等等。
如果屬性沒有進行封裝,那么在本類之外創(chuàng)建對象后,可以直接訪問屬性。
對于屬性或方法來說,使用關(guān)鍵字private(訪問權(quán)限修飾符)可進行封裝,private表示私有的,私有的屬性或者方法,只能在本類中訪問。
想要在類外部訪問私有屬性,需要提供公有的方法進行間接訪問。
成員變量和局部變量
在類中的位置不同
成員變量:在類中定義
局部變量:在方法中定義或者是方法中的參數(shù)
在內(nèi)存中的位置不同
成員變量:在堆內(nèi)存
局部變量:在棧內(nèi)存
生命周期不同
成員變量:隨著對象的創(chuàng)建而存在,隨著對象的銷毀而消失
局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完成而消失
初始化值不同
成員變量:有默認(rèn)初始化值,引用類型默認(rèn)為null
局部變量:沒有默認(rèn)初始化值,必須定義,賦值,才能使用。
Java的封裝性
信息的封裝與隱藏
使用者對類內(nèi)部定義的屬性(對象的成員變量)的直接操作會導(dǎo)致數(shù)據(jù)的錯誤、混亂或安全性問題。在面向?qū)ο蟪淌皆O(shè)計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現(xiàn)細(xì)節(jié)部份包裝、隱藏起來的方法。
封裝是指隱藏對象的屬性和實現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式。封裝可以被認(rèn)為是一個保護屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。
封裝最主要的功能在于我們能修改自己的實現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。
封裝原則:將不需要對外提供的內(nèi)容都隱藏起來,把屬性都隱藏,提供公共方法對其訪問。
封裝的好處(優(yōu)點):
1)通過隱藏對象的屬性來保護對象內(nèi)部的狀態(tài)(隱藏信息、實現(xiàn)細(xì)節(jié))。
2)提高了代碼的可用性和可維護性,因為對象的行為可以被單獨的改變或者是擴展(將變化隔離,類內(nèi)部的結(jié)構(gòu)可以自由修改,增加內(nèi)部實現(xiàn)部分的可替換性)。
3)禁止對象之間的不良交互提高模塊化(良好的封裝能夠減少耦合)。
4)可以對成員變量進行更精確的控制。
5)容易保證類內(nèi)部數(shù)據(jù)間的一致性,從而提高軟件的可靠性。
抽象和封裝的不同點:
抽象和封裝是互補的概念。一方面,抽象關(guān)注對象的行為。另一方面,封裝關(guān)注對象行為的細(xì)節(jié)。一般是通過隱藏對象內(nèi)部狀態(tài)信息做到封裝,因此,封裝可以看成是用來提供抽象的一種策略。
實現(xiàn)Java封裝
Java中通過將數(shù)據(jù)聲明為私有的(private),再提供公共的(public)方法:getXxx()和setXxx()實現(xiàn)對該屬性的操作,以實現(xiàn)下述目的:
1)隱藏一個類中不需要對外提供的實現(xiàn)細(xì)節(jié);
2)使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對屬性的不合理操作;
3)便于修改,增強代碼的可維護性;
為屬性封裝:

為方法封裝:

下面看一下實現(xiàn)Java封裝的示例:

JavaBean
JavaBean是一種Java語言寫成的可重用組件。
所謂javaBean,是指符合如下標(biāo)準(zhǔn)的Java類:
1)類是公共的
2)有一個無參的公共的構(gòu)造器
3)有屬性,且有對應(yīng)的get、set方法
4)用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認(rèn)為JavaBean提供了一種隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。
java中什么是類的封裝性
類的封裝性即不能讓外面的類隨意修改一個類的成員變量;
在定義一個類的成員,使用private關(guān)鍵字說明這個成員的訪問權(quán)限,只能被這個類的其他成員方法調(diào)用,而不能被其他的類中的方法所調(diào)用;
為實現(xiàn)封裝性,常將類的成員變量聲明為private,再通過public的方法來對這個變量進行訪問。對一個變量的操作,一般都有 讀取和賦值操作,我們一般定義兩個方法來實現(xiàn)這兩種操作,即:getxxx()與setxxx();
一個類就是一個模塊,我們應(yīng)該讓模塊僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其他的一切內(nèi)容。再進行程序設(shè)計時,應(yīng)盡量避免一個模塊直接修改或操作另一個模塊的數(shù)據(jù),模塊設(shè)計追求強內(nèi)聚,弱耦合。
電子發(fā)燒友App














評論