欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

學(xué)生視角帶你了解Java內(nèi)部類

 更新時(shí)間:2022年03月04日 16:03:17   作者:笑霸final  
說(shuō)起內(nèi)部類這個(gè)詞,想必很多人都不陌生,但是又會(huì)覺得不熟悉。原因是平時(shí)編寫代碼時(shí)可能用到的場(chǎng)景不多,用得最多的是在有事件監(jiān)聽的情況下,并且即使用到也很少去總結(jié)內(nèi)部類的用法。今天我們就來(lái)一探究竟

一、內(nèi)部類介紹

1.定義:一個(gè)類內(nèi)部又嵌套了一個(gè)類,被嵌套的類就是內(nèi)部類(inner class),嵌套其他類的稱為外部類(outer class)。內(nèi)部類是類的五大成員之一(屬性、 方法、構(gòu)造器、代碼塊、內(nèi)部類)。

分類:

二、成員內(nèi)部類:

1、非靜態(tài)內(nèi)部類

說(shuō)明:定義在成員位置中(方法或代碼塊外面),無(wú)static修飾。

1.可以直接訪問(wèn)外部類的所有的成員

2.可以 添加任意權(quán)限修飾符

3.作用域,和其他成員一樣作用在整個(gè)外部類

package local_class;

public class localclass {//外部類
    //屬性位置
    private int n1=10;
    class localN1{//局部類
        public void output(){
            //==1==.可以直接訪問(wèn)外部類的所有的成員,包括私有
            System.out.println("獲取私有成員"+n1);
        }
    }
    //寫一個(gè)方法來(lái)創(chuàng)建局部類的一個(gè)實(shí)列
    public void output(){
        localN1 LocalN1 = new localN1();
        LocalN1.output();
    }

}

實(shí)現(xiàn):

2、靜態(tài)內(nèi)部類

**說(shuō)明:**定義在成員位置中(方法或代碼塊外面),有或無(wú)static修飾。

1.可以直接訪問(wèn)外部類的靜態(tài)的成員,不能訪問(wèn)非靜態(tài)成員。

2.可以 添加任意權(quán)限修飾符

3.作用域,和其他成員一樣作用在整個(gè)外部類

代碼:

package local_class;

public class _static_localclass {//外部類
    private int n1=10;
    static int n2=20;
    static public class localN2{//靜態(tài)局部類
        public void output(){
            //==1==.可以直接訪問(wèn)外部類的所有的成員,包括私有
            System.out.println("獲取_static_localclass私有成員"+n2);
            //System.out.println(n1);
        }
    }
    //寫一個(gè)方法來(lái)創(chuàng)建局部類的一個(gè)實(shí)列
    public void output(){
        localN2 LocalN2 = new localN2();
        LocalN2.output();
    }
}

成員內(nèi)部類:用法比較簡(jiǎn)單。

二、局部?jī)?nèi)部類:

說(shuō)明:局部類是定義在外部類的方法內(nèi)或者代碼塊內(nèi)。

1.可以直接訪問(wèn)外部類的所有的成員。

2.不能添加訪問(wèn)修飾符,局部?jī)?nèi)部類的地位就是一個(gè)局部變量(所以可以用fianl修飾)。

3.作用域:作用在所定義的方法中或者代碼塊中。

4.訪問(wèn)方式:局部?jī)?nèi)部類訪問(wèn)外部外部類成員可以直接訪問(wèn)。外部類訪問(wèn)局部?jī)?nèi)部類,在外部類作用域內(nèi)先創(chuàng)建對(duì)象再訪問(wèn)。

5.外部其他類不能訪問(wèn)內(nèi)部類。

6.外部類成員與內(nèi)部類成員重名時(shí),默認(rèn)就近原則,如果想用外部類的話可以使用:外部類名.this.成員 。

例如:

2、有名的局部?jī)?nèi)部類

錯(cuò)誤代碼

正確代碼

package _inner_class;

public class Named_local_inner_class {//外部類
    private int a1=1;
    int a2=2;
    private void fun(){
        System.out.println("輸出了私有方法");
    }
    //第一種情況,在方法中
    //第二種情況,在代碼塊中(我就不打代碼了和在方法中一樣的)
    //此處以方法中為例。
    public void output(){//方法
    
        class inner_class{//局部?jī)?nèi)部類
            //1.可以訪問(wèn)外部類的所有成員
            public void _output(){
                System.out.println("a1="+a1);//訪問(wèn)的私有成員
                System.out.println("a2="+a2);
                fun();
            }

        }
		//只需要實(shí)例化就行了,然后調(diào)用這個(gè) output()方法。
		//注意作用域
        inner_class Inner_class=new inner_class();
        Inner_class._output();
    }//結(jié)束方法


}//外部類

調(diào)用

1、匿名局部?jī)?nèi)部類(重要)

1.本質(zhì)還是一個(gè)內(nèi)部類 就是一個(gè)類,該類沒有名字(其實(shí)有名字,只是我們看不見,系統(tǒng)分配)。

2.同時(shí)還是一個(gè)對(duì)象。 基本語(yǔ)法

new 類名或接口名(參數(shù)列表){
類體
};

調(diào)用匿名內(nèi)部類:

輸出

和有名的局部?jī)?nèi)部類的區(qū)分

1.A22對(duì)象只使用一次,以后不再使用時(shí)用匿名局部?jī)?nèi)部類。

2.A22的編譯類型和運(yùn)行類型是什么?(運(yùn)行類型其實(shí)就是匿名局部?jī)?nèi)部類,就是XXXXX.外部類名$1)

如圖:

最佳實(shí)踐:當(dāng)作參數(shù)直接傳遞,簡(jiǎn)介高效。

到此這篇關(guān)于學(xué)生視角帶你了解Java內(nèi)部類的文章就介紹到這了,更多相關(guān)Java 內(nèi)部類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java與kotlin詳細(xì)對(duì)比

    Java與kotlin詳細(xì)對(duì)比

    這篇文章主要介紹了Java與kotlin詳細(xì)對(duì)比,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)

    SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)

    下面小編就為大家?guī)?lái)一篇SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • Jmeter常見函數(shù)使用方法匯總

    Jmeter常見函數(shù)使用方法匯總

    這篇文章主要介紹了Jmeter函數(shù)使用方法匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決

    SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決

    這篇文章主要介紹了SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Mac中IntelliJ IDEA 2019.1注冊(cè)過(guò)程分享

    Mac中IntelliJ IDEA 2019.1注冊(cè)過(guò)程分享

    這篇文章主要介紹了Mac中IntelliJ IDEA 2019.1注冊(cè)過(guò)程,本文給大家分享到腳本之家平臺(tái)供大家學(xué)習(xí),需要的朋友可以參考下
    2020-02-02
  • 到底如何設(shè)置Java線程池的大小的方法示例

    到底如何設(shè)置Java線程池的大小的方法示例

    在我們?nèi)粘I(yè)務(wù)開發(fā)過(guò)程中,或多或少都會(huì)用到并發(fā)的功能。那么并發(fā)線程池到底設(shè)置多大呢?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java父子節(jié)點(diǎn)parentid樹形結(jié)構(gòu)數(shù)據(jù)的規(guī)整

    java父子節(jié)點(diǎn)parentid樹形結(jié)構(gòu)數(shù)據(jù)的規(guī)整

    這篇文章主要介紹了java父子節(jié)點(diǎn)parentid樹形結(jié)構(gòu)數(shù)據(jù)的規(guī)整,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot整合Minio實(shí)現(xiàn)上傳文件的完整步驟記錄

    SpringBoot整合Minio實(shí)現(xiàn)上傳文件的完整步驟記錄

    MinIO是一個(gè)基于Apache License v2.0開源協(xié)議的對(duì)象存儲(chǔ)服務(wù),它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口,非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合Minio實(shí)現(xiàn)上傳文件的完整步驟,需要的朋友可以參考下
    2022-05-05
  • java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件并解決文件重名問(wèn)題

    java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件并解決文件重名問(wèn)題

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件,并解決文件重名問(wèn)題的方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    這篇文章主要介紹了SpringBoot調(diào)用公共模塊的自定義注解失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論