最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

分類:

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

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

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

1.可以直接訪問外部類的所有的成員

2.可以 添加任意權限修飾符

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

package local_class;

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

}

實現(xiàn):

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

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

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

2.可以 添加任意權限修飾符

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

代碼:

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==.可以直接訪問外部類的所有的成員,包括私有
            System.out.println("獲取_static_localclass私有成員"+n2);
            //System.out.println(n1);
        }
    }
    //寫一個方法來創(chuàng)建局部類的一個實列
    public void output(){
        localN2 LocalN2 = new localN2();
        LocalN2.output();
    }
}

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

二、局部內(nèi)部類:

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

1.可以直接訪問外部類的所有的成員。

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

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

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

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

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

例如:

2、有名的局部內(nèi)部類

錯誤代碼

正確代碼

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{//局部內(nèi)部類
            //1.可以訪問外部類的所有成員
            public void _output(){
                System.out.println("a1="+a1);//訪問的私有成員
                System.out.println("a2="+a2);
                fun();
            }

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


}//外部類

調用

1、匿名局部內(nèi)部類(重要)

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

2.同時還是一個對象。 基本語法

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

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

輸出

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

1.A22對象只使用一次,以后不再使用時用匿名局部內(nèi)部類。

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

如圖:

最佳實踐:當作參數(shù)直接傳遞,簡介高效。

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

相關文章

  • java datetime數(shù)據(jù)類型去掉時分秒的案例詳解

    java datetime數(shù)據(jù)類型去掉時分秒的案例詳解

    在Java中,如果我們想要表示一個日期而不包括時間(時分秒),我們通常會使用java.time包中的LocalDate類,這篇文章主要介紹了java datetime數(shù)據(jù)類型去掉時分秒,需要的朋友可以參考下
    2024-06-06
  • java 中枚舉類enum的values()方法的詳解

    java 中枚舉類enum的values()方法的詳解

    這篇文章主要介紹了java 中枚舉類enum的values()方法的詳解的相關資料,希望通過本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • 詳解static 和 final 和 static final區(qū)別

    詳解static 和 final 和 static final區(qū)別

    這篇文章主要介紹了static 和 final 和 static final區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 創(chuàng)建一個Java的不可變對象

    創(chuàng)建一個Java的不可變對象

    這篇文章主要介紹了創(chuàng)建一個Java的不可變對象,一個類的對象在通過構造方法創(chuàng)建后如果狀態(tài)不會再被改變,那么它就是一個不可變(immutable)類。它的所有成員變量的賦值僅在構造方法中完成,不會提供任何 setter 方法供外部類去修改,需要的朋友可以參考下
    2021-11-11
  • Maven在Windows中的配置以及IDE中的項目創(chuàng)建(圖文教程)

    Maven在Windows中的配置以及IDE中的項目創(chuàng)建(圖文教程)

    這篇文章主要介紹了Maven在Windows中的配置以及IDE中的項目創(chuàng)建(圖文教程),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring Boot集成Druid數(shù)據(jù)庫連接池

    Spring Boot集成Druid數(shù)據(jù)庫連接池

    這篇文章主要介紹了Spring Boot集成Druid數(shù)據(jù)庫連接池,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • spring boot密碼加密配置與實例詳解

    spring boot密碼加密配置與實例詳解

    BCrypt是一種專為密碼哈希設計的算法,它被廣泛認為是安全的選擇之一,這篇文章主要介紹了spring boot密碼加密配置與實例詳解,需要的朋友可以參考下
    2024-12-12
  • springboot配置允許跨域訪問代碼實例

    springboot配置允許跨域訪問代碼實例

    這篇文章主要介紹了springboot配置允許跨域訪問代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot中通過AOP整合日志文件的實現(xiàn)

    SpringBoot中通過AOP整合日志文件的實現(xiàn)

    本文主要介紹了SpringBoot中通過AOP整合日志文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java使用泛型實現(xiàn)棧結構的示例代碼

    Java使用泛型實現(xiàn)棧結構的示例代碼

    泛型是JAVA重要的特性,使用泛型編程,可以使代碼復用率提高。本文將利用泛型實現(xiàn)簡單的棧結構,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-08-08

最新評論

桑日县| 广饶县| 茌平县| 高安市| 休宁县| 邮箱| 友谊县| 乌苏市| 安阳市| 墨玉县| 封丘县| 吉隆县| 曲阳县| 长兴县| 通海县| 通州区| 延吉市| 云霄县| 玉溪市| 织金县| 灵台县| 晋州市| 基隆市| 宁夏| 贵港市| 惠水县| 芷江| 儋州市| 顺昌县| 资源县| 响水县| 定兴县| 新泰市| 海晏县| 屯门区| 桑植县| 林甸县| 宜城市| 高阳县| 礼泉县| 贡觉县|