更新時(shí)間:2020-04-16 11:17:06 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2824次
1.封裝思想
封裝是面向?qū)ο笕筇卣髦?,其含義有兩個(gè)(掌握思想):
n把對(duì)象的字段和方法存放在一個(gè)獨(dú)立的模塊中(類)
n信息隱藏,盡可能隱藏對(duì)象的數(shù)據(jù)和功能的實(shí)現(xiàn)細(xì)節(jié)
封裝的好處:
1、保證數(shù)據(jù)的安全性,防止調(diào)用者隨意修改數(shù)據(jù)
2、提高組件的重用性,把公用功能放到一個(gè)類中,誰需要該功能,直接調(diào)用即可
沒有封裝帶來的困惑:
學(xué)生類:

測(cè)試類:

此時(shí)從代碼語法上來看,是沒有任何問題的,但是從邏輯上來分析人的年齡怎么能是負(fù)數(shù)呢?造成該問題的根本原因就是:可以隨意訪問對(duì)象中的字段。
那么問題來了,怎么才能限制不能隨意訪問字段數(shù)據(jù)呢?
此時(shí),就該歡迎訪問修飾符登場了!
1.1.訪問修飾符(必須記?。?/strong>
車庫有一個(gè)車位,旁邊寫著”公共車位”,那么該車位就是公共的,誰都可以訪問它。如果我在車位旁邊寫上“私家車位”,那么該車位就只能是我自己來訪問。外界(除我之外)都訪問不了,像“公共”、“私有”這種限制外界訪問的標(biāo)記符號(hào),就稱之為訪問修飾符。
訪問修飾符,決定了有沒有權(quán)限訪問某個(gè)資源。
封裝其實(shí)就是要讓有些類看不到另外一些類中定義的字段和方法。Java提供了不同的訪問權(quán)限修飾符來限定類中的成員讓誰可以訪問到。

private:表示當(dāng)前類私有的,類訪問權(quán)限,只能在本類中操作,離開本類之后就不能直接訪問
不寫(缺?。罕硎井?dāng)前包私有,包訪問權(quán)限,定義和調(diào)用只能在同一個(gè)包中,才能訪問
protected:表示子類訪問權(quán)限,同包中的可以訪問,即使不同包但是有繼承關(guān)系也可以訪問
public:表示公共的,可以在當(dāng)前項(xiàng)目中任何地方訪問
private修飾符演示:

缺省和public修飾符演示:

暫時(shí)記住:把所有的字段使用private修飾,所有方法使用public修飾。
1.2.封裝使用(了解)
使用private修飾了Student類中的字段,此時(shí)在測(cè)試類中訪問報(bào)錯(cuò)。

測(cè)試類:

此時(shí)使用private修飾字段后,在測(cè)試類中不能再操作這些字段了,此時(shí)怎么辦?我們可以使用JavaBean的規(guī)范來解決,其實(shí)也非常簡單。
1.2.1.JavaBean規(guī)范(重點(diǎn)掌握)
JavaBean是一種某些符合條件的特殊類,但是必須遵循一定的規(guī)范:
n類必須使用public修飾
n必須保證有公共無參數(shù)構(gòu)造器,即使手動(dòng)提供了帶參數(shù)的構(gòu)造器,也得手動(dòng)提供無參數(shù)構(gòu)造器
n字段使用private修飾,每個(gè)字段提供一對(duì)getter和setter方法
需求:針對(duì)名為name的字段名來舉例
getter方法:僅僅用于返回某一個(gè)字段的值
publicStringgetName(){
returnname;//返回name字段存儲(chǔ)的值
}
如果操作的字段是boolean類型的,此時(shí)是is方法,把getName變成isName。
setter方法:僅僅用來給某一個(gè)字段設(shè)置值
publicvoidsetName(Stringn){
name=n;//把傳過來的參數(shù)n的值,存儲(chǔ)到name字段中
}
注意:每一個(gè)字段都得使用private修飾,并提供一對(duì)getter/setter方法。
Eclipse工具可以自動(dòng)生成標(biāo)準(zhǔn)的getter/setter,前期必須手寫。
代碼如下:

測(cè)試類:

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“零基礎(chǔ)經(jīng)典學(xué)習(xí)Java封裝實(shí)例教程”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)