溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

深入淺析JAVA中封裝的原理

發(fā)布時間:2020-11-17 14:58:38 來源:億速云 閱讀:322 作者:Leah 欄目:編程語言

本篇文章為大家展示了深入淺析JAVA中封裝的原理,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

第一節(jié) 什么是JAVA中的封裝

面向?qū)ο蟮娜筇匦裕?strong>封裝、繼承、多態(tài)。

1.概念:將類的某些信息隱藏在類的內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法,來實現(xiàn)對隱藏信息的操作和訪問。

2.好處

a只能通過規(guī)定的方法訪問數(shù)據(jù)

b隱藏類的實例細(xì)節(jié),方便修改和實現(xiàn)

3.封裝的實現(xiàn)步驟

修改屬性的可見性,改為設(shè)為private;創(chuàng)建getter/setter方法,用于屬性的讀寫,創(chuàng)建一個特定的方法,一般是gettersetter方法,可以在gettersetter方法中加入屬性控制語句,對屬性值的合法性進(jìn)行判斷,舉例來說:

public float getScreen(){
return screen;
}
public void setScreen(float screen){
this.screen=screen;
}

第二節(jié) 使用包管理JAVA中的類

封裝的類名可能沖突,用包可以解決

1.包的作用,管理Java文件夾,管理同名文件沖突

2.定義包,package關(guān)鍵字

3.系統(tǒng)中的包

java.(功能).(類)

java.lang.類 包含java語言基礎(chǔ)的類

java.util.類 包含java與語言中的各種工具類

java.io.類 包含輸入輸出相關(guān)功能類

4.包的使用

import 使用關(guān)鍵字可以在某個文件中使用其他文件中的類,全部都是小寫

import com.imooc.music.Myclass;

import com.*是包下所有的類

第三節(jié) JAVA中的訪問修飾符

修飾我們屬性和方法的訪問范圍

private 本類

默認(rèn) 本類 同包

protected 本類 同包 子類

public 本類 同包 子類 其他

第四節(jié) JAVA中的this關(guān)鍵字

1.this關(guān)鍵字代表當(dāng)前對象,this.屬性代表當(dāng)前對象的屬性,this.方法代表當(dāng)前對象的方法

2.封裝對象屬性的時候經(jīng)常會用到this關(guān)鍵字,例如this.a=a;

第五節(jié) 什么是JAVA中的內(nèi)部類

1.什么是內(nèi)部類:

內(nèi)部類是定義在另一個類里面,與之對應(yīng),包含內(nèi)部類的類被稱為外部類。

 2.為什么要將一個類定義在另一個類里,清清爽爽獨立不好嗎?

內(nèi)部類的主要作用是:

內(nèi)部類提供了更好的封裝,可以把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個包中其他類訪問該類。

內(nèi)部類中的方法可以直接訪問外部類的所有數(shù)據(jù),包括私有數(shù)據(jù)

內(nèi)部類所實現(xiàn)的功能使用外部類同樣可以實現(xiàn),是有時使用內(nèi)部類會更加方便。

3.內(nèi)部類有幾種:

成員內(nèi)部類;靜態(tài)內(nèi)部類;方法內(nèi)部類和匿名內(nèi)部類

內(nèi)部類其實也是外部類的一個成員,只不過這個成員類型是一個類,調(diào)用時要先實現(xiàn)外部類,然后才能找到該類下的內(nèi)部類實現(xiàn)。例:

public class HelloWorld{
public class Inner{
方法show();
}
main函數(shù){
HelloWorld h=new HelloWorld();
Inner i=h.new Inner();
i show;
}
}

定義了成員內(nèi)部類后,必須使用外部類對象來創(chuàng)建內(nèi)部類對象,而不能直接去new一個內(nèi)部類對象,也就是:內(nèi)部類 對象名=外部類對象.new 內(nèi)部類();

第六節(jié) JAVA中的成員內(nèi)部類

內(nèi)部類中最常見的也就是成員內(nèi)部類,即普通內(nèi)部類。

 成員內(nèi)部類的使用方法:

1.內(nèi)部類定義在外部類的內(nèi)部,相當(dāng)于外部類的一個成員變量的位置,內(nèi)部類可以使用任意訪問修飾符,如public private protected等

2.內(nèi)部類中定義的方法,可以訪問外部類中的數(shù)據(jù),而不受訪問修飾符的影響

3.定義了成員內(nèi)部類后,必須使用外部類對象來創(chuàng)建內(nèi)部類對象,而不能直接去new一個內(nèi)部類對象,也就是:內(nèi)部類 對象名=外部類對象.new 內(nèi)部類();

4.編譯含內(nèi)部類的程序時,會出現(xiàn)兩個class文件,其中第二個是外部類的.class文件,第一個是內(nèi)部類.class文件,成員內(nèi)部類的class文件總是這樣,外部類名$內(nèi)部類名.class 這是內(nèi)部類.class名字 

深入淺析JAVA中封裝的原理

注意:

a.外部類不能直接使用內(nèi)部類的成員和方法,可以先創(chuàng)建內(nèi)部類對象,然后通過它們的對象來訪問其成員變量和方法;

b.如內(nèi)部類和外部類具有相同的成員變量和方法,內(nèi)部類默認(rèn)訪問自己的成員變量或方法。如果要訪問外部類的成員變量,可以使用this關(guān)鍵字,外部類.this.屬性。如:

深入淺析JAVA中封裝的原理

第七節(jié) JAVA中的靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類是static修飾的內(nèi)部類,這種內(nèi)部類的特點是:

1、靜態(tài)內(nèi)部類不能直接訪問外部類的非靜態(tài)成員,但可以通過 new 外部類().成員 的方式訪問

2、 如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱相同,可通過“類名.靜態(tài)成員”訪問外部類的靜態(tài)成員;如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱不相同,則可通過“成員名”直接調(diào)用外部類的靜態(tài)成員

3、 創(chuàng)建靜態(tài)內(nèi)部類的對象時,不需要外部類的對象,可以直接創(chuàng)建 內(nèi)部類 對象名= new 內(nèi)部類(); 

深入淺析JAVA中封裝的原理

運行結(jié)果,訪問外部類中的b:1

訪問內(nèi)部類中的b:2

第八節(jié) JAVA中的方法內(nèi)部類

方法內(nèi)部類就是內(nèi)部類定義在外部類的方法中,方法內(nèi)部類只在該方法的內(nèi)部可見,即只在該方法內(nèi)可以使用。

深入淺析JAVA中封裝的原理

注意:由于方法內(nèi)部類不能在外部類的方法以外的地方使用,因此方法內(nèi)部類不能使用訪問控制符和 static 修飾符。

上述內(nèi)容就是深入淺析JAVA中封裝的原理,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI