更新時(shí)間:2022-06-08 10:55:42 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1509次
什么是Java封裝?動(dòng)力節(jié)點(diǎn)小編來為大家解答。

1.類有成員屬性和方法兩個(gè)部分組成,二者都可以供其它類去調(diào)用。方法作為一個(gè)功能的實(shí)現(xiàn),被調(diào)用時(shí)不會(huì)產(chǎn)生什么問題,屬性卻不一樣,它是屬于類和對(duì)象的,容易被“非法篡改”。
例如:定義一個(gè)類people,有姓名和財(cái)產(chǎn)等屬性,默認(rèn)值是:張三和12000.有show方法,輸出姓名和財(cái)產(chǎn)。定義一個(gè)測(cè)試類,修改張三的money為-10000;
2.此案例可以看出類和對(duì)象的屬性毫無隱蔽性可言,可以被隨意修改,這樣設(shè)計(jì)出的程序會(huì)有很大的安全性問題。
3.為了解決這個(gè)問題,java開發(fā)者提出了封裝的思想。將類的成員屬性的訪問修飾符規(guī)定為私有(private),這樣該屬性在其它類就不能調(diào)用,更不可能被修改。這相當(dāng)于閉關(guān)鎖國(guó)政策,所以又面臨一個(gè)問題:連成員屬性的正常賦值也不可能在其它類中實(shí)現(xiàn)。因此設(shè)計(jì)者們?cè)俅翁岢隽艘粋€(gè)方案:成員屬性可以間接地在其它類中被訪問,也就是中間要設(shè)置一道檢查和過濾的關(guān)卡,這道關(guān)卡就是get和set方法,它們被稱為getter和setter.
下面我們對(duì)剛才的案例進(jìn)行改進(jìn)。
實(shí)現(xiàn)封裝總結(jié):
(1)屬性訪問修飾符定義為私有:private
(2)對(duì)外提供get和set方法。
在開發(fā)大型項(xiàng)目時(shí),會(huì)有很多功能模塊的具體劃分,這是需要建立很多的類,將同一層級(jí)的類放在一個(gè)包中,可使程序的層級(jí)結(jié)構(gòu)清晰,提高辨識(shí)度。
類似于在資源管理器中新建一個(gè)文件夾,有規(guī)律的存放和管理資源文件。
導(dǎo)包:導(dǎo)入自己的包和系統(tǒng)包
java.lang包是java語(yǔ)言的核心,它提供了java中的基礎(chǔ)類。(java.lang這個(gè)包屬于系統(tǒng)包,該包中的類不用導(dǎo)入,例如System,String)
1.類的訪問修飾符:
Public:對(duì)外公開
默認(rèn):所在包有效,包以外不能訪問 --體現(xiàn)在構(gòu)造方法上
2.成員訪問修飾符(成員屬性和成員方法)
Public:對(duì)外公開
Protected:受保護(hù)的,同一個(gè)包的子類可以訪問。
默認(rèn):同一個(gè)包中可以訪問
Private:只在當(dāng)前類有效
static和this關(guān)鍵字
Static修飾的,屬于類范圍的,this代表當(dāng)前對(duì)象。
Static修飾成員屬性和方法和代碼塊
如何理解繼承,我猜大家首先想到的可能是繼承千萬家產(chǎn),走上人生巔峰。夢(mèng)想是美好的,java里面卻不是這樣的。
Java中的繼承需要從兩個(gè)方面去理解:
1.在多個(gè)子類中抽取出相同的屬性和方法,形成父類的屬性和方法
例如:大象和獅子 具有相同的屬性,名稱,體重,戰(zhàn)斗力??梢蕴崛∵@些相同的屬性,形成一個(gè)父類 動(dòng)物。
2.對(duì)父類成員的繼承使用(包含成員屬性和成員方法)
抽取出共有的重復(fù)的代碼,使用繼承,提高代碼的復(fù)用性,
讓類與類之間產(chǎn)生關(guān)系:extends
繼承是兩個(gè)類之間產(chǎn)生關(guān)聯(lián)關(guān)系的唯一的方式
子類構(gòu)造方法會(huì)默認(rèn)調(diào)用父類構(gòu)造方法。
為多態(tài)提供了前提
Java中支持單繼承:一個(gè)子類只能有一個(gè)直接父類
Java中不支持多繼承
通過上述介紹,相信大家對(duì)Java封裝已經(jīng)有所了解,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java基礎(chǔ)教程,里面有更豐富的知識(shí)等著大家去學(xué)習(xí),相信對(duì)大家會(huì)有所幫助的。
相關(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í)