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