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

Java語言中4種內(nèi)部類的超詳細講解

 更新時間:2023年04月26日 10:49:43   作者:tq02  
這篇文章主要給大家介紹了關(guān)于Java語言中4種內(nèi)部類的超詳細講解,內(nèi)部類可以分為:實例內(nèi)部類、靜態(tài)內(nèi)部類和成員內(nèi)部類,每種內(nèi)部類都有它特定的一些特點,文中介紹的非常詳細,需要的朋友可以參考下

一.內(nèi)部類的介紹

  內(nèi)部類: 一個類定義在 另一個類 的 內(nèi)部。  

     內(nèi)部類分為四種:實例內(nèi)部類、靜態(tài)內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類。

使用時機:當一個事物的內(nèi)部,還需要一個完整的結(jié)構(gòu)進行描述時,而這個內(nèi)部的完整結(jié)構(gòu)又只為外部事物提供服務(wù),這個完整結(jié)構(gòu)最好使用內(nèi)部類。(通常 數(shù)據(jù)結(jié)構(gòu) 時會使用)

內(nèi)部類代碼實例: 

public class Person{
       
       class Student{
 
     }
 
}
 //Person是外部類
//Student是內(nèi)部類

 注: 1.定義在class類名外{}花括號外部的其他類,即使是一個文件夾,都不能稱為內(nèi)部類。                                          2.內(nèi)部類和外部類共用一個Java源文件,但是經(jīng)過編譯之后,內(nèi)部類會形成單獨的字節(jié)碼文件。        

二.內(nèi)部類的種類

2.1實例內(nèi)部類      

代碼實例:

public class Person {
    public int data1=10;
    public int data2=20;
    //實例內(nèi)部類
    class InnerClass{
        public int data1 = 40;
 
        //public static int data4=60; 無法定義靜態(tài)成員變量
         public static finally int data4=60  //finally修飾,為常量
        public void textInner(){
            System.out.println("textInner");
            System.out.println(this.data1);   //輸出為40;
            System.out.println(Person.this.data1);  //輸出為10;
        }
    }
    public static void main(String[] args) {
        //實例化內(nèi)部類
        Person kk = new Person();
        Person.InnerClass fw = new Person().new InnerClass();
        fw.textInner();    //輸出結(jié)果為:textInner
        //實例化內(nèi)部類
        Person.InnerClass fw1 =new Person().new InnerClass();
        fw1.textInner();    //輸出結(jié)果為:textInner
    }
}

 解析:

  1.定義在類當中,且不被static修飾的內(nèi)部類。

  2.因為static不依賴于對象,所以無法定義靜態(tài)成員變量

  3.當需要實例化實例內(nèi)部類時,語法格式為:

           1.  外部類名.內(nèi)部類名  變量名=new  外部類名().new 內(nèi)部類(); 

           2.  外部類名 變量名1=new 外部類名();   

               外部類名.內(nèi)部類名  變量名2=變量名1.new 內(nèi)部類名();

4.當內(nèi)部類的變量名和外部類的變量名相同時,優(yōu)先訪問自己的,而想調(diào)用外部類的成員,調(diào)用方法:外部類名.this.同名成員。

5.外部類的任何成員都可以在實例內(nèi)部類方法中直接訪問。

2.2.靜態(tài)內(nèi)部類

public class Person2 {
    public int data=10;
    private  int data2=20;
 
    //靜態(tài)內(nèi)部類
    static class InnerClass{
        public int data = 40;
 
        //public static int data3=60; 無法定義靜態(tài)成員變量
        public void textInner(){
            System.out.println("textInner");
            System.out.println(data);   //輸出內(nèi)部類的40
            Person2 kk=new Person2();
            System.out.println(kk.data); //輸出外部類的10;
        }
    }
    public static void main(String[] args) {
        //實例化靜態(tài)內(nèi)部類
        Person2.InnerClass fw1 =new Person2.InnerClass() ;
        fw1.textInner();    //輸出結(jié)果為:textInner
    }
}

 解析 : 

  1.  定義在類當中,被static修飾的內(nèi)部類
  2. 當需要實例化靜態(tài)內(nèi)部類時,語法格式為 :外部類名.內(nèi)部類名  變量名=new  外部類名.內(nèi)部類();
  3. 訪問外部變量時,必須先實例化外部變量的對象,再進行調(diào)用。

2.3局部內(nèi)部類

public class Person3 {
    public int data=10;
    private  int data2=20;
 
  public void textInner(){
    
    //定義局部內(nèi)部類
      class InnerClass{
        int data3=20;
     public void methodInner(){
          System.out.println(data3);
        }
     }
     //實例化局部內(nèi)部類
        InnerClass fw=new.InnerClass();
         fw. methodInner();
}
 
 
public static void main(String[] args) {
    //方法體
}
 
}

   解析:

   1.在方法當中定義的內(nèi)部類。

    2.只能在該方法體內(nèi)部使用,其他位置都不能使用。

    3.也不能被訪問修飾符public、private等修飾

2.4匿名內(nèi)部類

interface Shape{
    void draw();
}
public class Text3 {
    public static void main(String[] args) {
            int area=20;
        new Shape(){
        //需要重寫內(nèi)部方法
           public void draw()
           {
               // area=50; 無法修改,一旦修改無法訪問了。
               System.out.println("正方形面積:"+area);
           }
        }.draw();  //調(diào)用draw();
    }
}

解析:

1.匿名內(nèi)部類與接口有關(guān),匿名一詞便可以知道不需要變量名。
2.語法格式:  new 接口名() {       

                                    //重寫的方法                 

                             }.需要調(diào)用的方法;

3.匿名內(nèi)部類里使用到外部變量時,不可以在匿名內(nèi)部類里修改變量值,會停止訪問。

總結(jié) 

四種內(nèi)部類,使用最少的是局部內(nèi)部類,并且四種內(nèi)部類有這很大的不同,不同的語法要求,使用限制等等,在數(shù)據(jù)結(jié)構(gòu)的線性表、棧堆等都需要使用,所以我們得熟練掌握。

到此這篇關(guān)于Java語言中4種內(nèi)部類的超詳細講解的文章就介紹到這了,更多相關(guān)Java內(nèi)部類講解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WebUploader+SpringMVC實現(xiàn)文件上傳功能

    WebUploader+SpringMVC實現(xiàn)文件上傳功能

    WebUploader是由Baidu團隊開發(fā)的一個簡單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。這篇文章主要介紹了WebUploader+SpringMVC實現(xiàn)文件上傳功能,需要的朋友可以參考下
    2017-06-06
  • 一個Java中BigDecimal的問題記錄

    一個Java中BigDecimal的問題記錄

    這篇文章主要給大家介紹了關(guān)于Java中一個BigDecimal問題的相關(guān)資料,通過文中介紹的方法可以很方便的解決BigDecimal進行計算的時候不管怎么計算,最后得到的值都沒有變化的問題,需要的朋友可以參考下
    2021-11-11
  • SpringBoot使用@PostConstruct注解導(dǎo)入配置方式

    SpringBoot使用@PostConstruct注解導(dǎo)入配置方式

    這篇文章主要介紹了SpringBoot使用@PostConstruct注解導(dǎo)入配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java實現(xiàn)簡易版聯(lián)網(wǎng)坦克對戰(zhàn)小游戲(附源碼)

    Java實現(xiàn)簡易版聯(lián)網(wǎng)坦克對戰(zhàn)小游戲(附源碼)

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)簡易版聯(lián)網(wǎng)坦克對戰(zhàn)小游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • java實現(xiàn)文件變化監(jiān)控的方法(推薦)

    java實現(xiàn)文件變化監(jiān)控的方法(推薦)

    下面小編就為大家?guī)硪黄猨ava實現(xiàn)文件變化監(jiān)控的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • java基于socket傳輸zip文件功能示例

    java基于socket傳輸zip文件功能示例

    這篇文章主要介紹了java基于socket傳輸zip文件功能,結(jié)合實例形式分析了java使用socket進行文件傳輸?shù)木唧w操作步驟與服務(wù)器端、客戶端相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • fastjson 使用方法詳細介紹

    fastjson 使用方法詳細介紹

    Fastjson是一個Java語言編寫的JSON處理器,由阿里巴巴公司開發(fā)。接下來通過本文給大家分享fastjson 使用方法詳細介紹,感興趣的朋友一起看看吧
    2017-11-11
  • Java壓縮解壓縮工具類

    Java壓縮解壓縮工具類

    這篇文章主要為大家詳細介紹了Java壓縮解壓縮工具類,如何壓縮單個文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Idea去除方法形參參數(shù)提示的操作

    Idea去除方法形參參數(shù)提示的操作

    這篇文章主要介紹了Idea去除方法形參參數(shù)提示的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Maven中dependency和plugins的繼承與約束

    Maven中dependency和plugins的繼承與約束

    這篇文章主要介紹了Maven中dependency和plugins的繼承與約束,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論