91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java語言中的內部類有哪些

發布時間:2023-04-26 11:24:41 來源:億速云 閱讀:105 作者:iii 欄目:開發技術

這篇“Java語言中的內部類有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java語言中的內部類有哪些”文章吧。

    一.內部類的介紹

      內部類: 一個類定義在 另一個類 的 內部。  

         內部類分為四種:實例內部類、靜態內部類、局部內部類、匿名內部類。

    使用時機:當一個事物的內部,還需要一個完整的結構進行描述時,而這個內部的完整結構又只為外部事物提供服務,這個完整結構最好使用內部類。(通常 數據結構 時會使用)

    內部類代碼實例: 

    public class Person{
           
           class Student{
     
         }
     
    }
     //Person是外部類
    //Student是內部類

    注: 1、定義在class類名外{}花括號外部的其他類,即使是一個文件夾,都不能稱為內部類。                                          

            2、內部類和外部類共用一個Java源文件,但是經過編譯之后,內部類會形成單獨的字節碼文件。        

    二.內部類的種類

    2.1實例內部類      

    代碼實例:

    public class Person {
        public int data1=10;
        public int data2=20;
        //實例內部類
        class InnerClass{
            public int data1 = 40;
     
            //public static int data4=60; 無法定義靜態成員變量
             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) {
            //實例化內部類
            Person kk = new Person();
            Person.InnerClass fw = new Person().new InnerClass();
            fw.textInner();    //輸出結果為:textInner
            //實例化內部類
            Person.InnerClass fw1 =new Person().new InnerClass();
            fw1.textInner();    //輸出結果為:textInner
        }
    }

     解析:

      1.定義在類當中,且不被static修飾的內部類。

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

      3.當需要實例化實例內部類時,語法格式為:

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

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

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

    4.當內部類的變量名和外部類的變量名相同時,優先訪問自己的,而想調用外部類的成員,調用方法:外部類名.this.同名成員。

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

    2.2.靜態內部類

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

     解析 : 

    1.  定義在類當中,被static修飾的內部類

    2. 當需要實例化靜態內部類時,語法格式為 :外部類名.內部類名  變量名=new  外部類名.內部類();

    3. 訪問外部變量時,必須先實例化外部變量的對象,再進行調用。

    2.3局部內部類

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

       解析:

       1.在方法當中定義的內部類。

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

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

    2.4匿名內部類

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

    解析:

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

                                        //重寫的方法                 

                                 }.需要調用的方法;

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

    以上就是關于“Java語言中的內部類有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    疏勒县| 汽车| 南平市| 三台县| 武鸣县| 方城县| 涪陵区| 夏邑县| 潼关县| 通许县| 吴忠市| 三明市| 正阳县| 盐山县| 新蔡县| 十堰市| 简阳市| 基隆市| 襄垣县| 蒙城县| 弋阳县| 湖口县| 泰宁县| 辰溪县| 绥宁县| 余江县| 南丰县| 集安市| 朔州市| 岚皋县| 栖霞市| 高阳县| 阳春市| 呼伦贝尔市| 神农架林区| 瓦房店市| 体育| 宝山区| 山丹县| 临清市| 张家口市|