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

Java面向對象之內部類詳解

 更新時間:2022年10月04日 09:52:16   作者:館主阿牛  
在 Java 中,允許一個類的定義位于另一個類的內部,前者稱為內部類,后者稱為外部類。這篇文章將總結一下內部類的使用,感興趣的可以了解一下

前言

在 Java 中,允許一個類的定義位于另一個類的內部,前者稱為內部類,后者稱為外部類。本篇博客將總結內部類的使用。

內部類概述

當一個事物的內部,還有一個部分需要一個完整的結構進行描述,而這個內部的完整的結構又只為外部事物提供服務,那么整個內部的完整結構最好使用內部類。

在 Java 中,允許一個類的定義位于另一個類的內部,前者稱為內部類,后者稱為外部類。

內部類一般用在定義它的類或語句塊之內,在外部引用它時必須給出完整的名稱。

內部類的名字不能與包含它的外部類類名相同;

內部類的分類

內部類分為:

成員內部類( static 成員內部類和非 static 成員內部類)

局部內部類(方法內,代碼塊內,構造器內)

成員內部類

一方面,作為外部類的成員:

  • 調用外部類的結構。
  • 可以被 static 修飾(注意里面只能調用靜態(tài)方法,靜態(tài)屬性)。
  • 可以被4種不同的權限修飾。

另一方面,作為一個類:

  • 類內可以定義屬性、方法、構造器等。
  • 可以被final修飾,表示此類不能被繼承。
  • 可以被 abstract 修飾。
class People{
    String race;
    String countries;

    //靜態(tài)成員內部類
    static class Man{
        String name;
        public Man(){
        }
        public void display(){
            System.out.println("3090yyds");
        }

    }

    // 非靜態(tài)成員內部類
    class Women{
        String name;
        public Women(){
        }
        public void display(){
            System.out.println("化妝");
        }
    }
}

如何實例化成員內部類的對象

package 內部類;

???????public class Demo {
    public static void main(String[] args) {
        //創(chuàng)建Man對象(靜態(tài)的成員內部類)
        People.Man m = new People.Man();
        m.display();
        //創(chuàng)建Women對象(非靜態(tài)的成員內部類)
        People p = new People();
        People.Women w = p.new Women();
        w.display();
    }
}

如何在成員內部類成員中區(qū)分調用外部類的對象

package 內部類;

public class Demo {
    public static void main(String[] args) {
        //創(chuàng)建Women對象(非靜態(tài)的成員內部類)
        People p = new People();
        People.Women w = p.new Women();
        w.display("a");
    }
}

class People{
    String name = "niu";
    String countries;
    public void eat(){
        System.out.println("吃飯");
    }
    // 非靜態(tài)成員內部類
    class Women{
        String name = "aniu";
        public Women(){
        }
        public void eat(){
            System.out.println("吃蔬菜");
        }
        public void display(String name){
            System.out.println("化妝");
            System.out.println(name); //方法的形參
            System.out.println(this.name); //內部類的屬性
            System.out.println(People.this.name); //外部類的屬性
            this.eat(); //內部類的方法
            People.this.eat(); // 外部類的方法
        }
    }
}

局部內部類

局部內部類可以在方法內,代碼塊內,構造器內

class Animal{ 
// 局部內部類
    // 構造器內
    Animal(){
        class Dog{
            
        }
    }
    
    // 代碼塊內
    {
        class Cat{
            
        }
    }
    
    // 方法內
    public void method(){
        class Bird{
            
        }
    }
}

開發(fā)中局部內部類的使用

我們在開發(fā)中局部內部類使用較多,比如,我們需要一個方法返回實現了某個接口的類的對象,此時方法內自然就需要一個內部類實現接口!

例:

 // 返回一個實現了Comparable接口的類的對象
    public Comparable getComparable(){
        // 創(chuàng)建一個實現了Comparable接口的類 ---局部內部類
        class MyComparable implements Comparable{
            @Override
            public int compareTo(Object o) {
                return 0;
            }
        }
        return new MyComparable();   // 非匿名內部類的匿名對象
    }

或者是這樣

 // 返回一個實現了Comparable接口的類的對象
    public Comparable getComparable(){     
        return new Comparable() {
            @Override
            public int compareTo(Object o) {
                return 0;
            }
        };  // 匿名內部類的匿名對象

到此這篇關于Java面向對象之內部類詳解的文章就介紹到這了,更多相關Java內部類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 關于mybatis resulttype 返回值異常的問題

    關于mybatis resulttype 返回值異常的問題

    這篇文章主要介紹了mybatis resulttype 返回值異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot配置項目啟動后自動打開瀏覽器訪問項目方式

    springboot配置項目啟動后自動打開瀏覽器訪問項目方式

    這篇文章主要介紹了springboot配置項目啟動后自動打開瀏覽器訪問項目方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java設計模式之靜態(tài)工廠模式詳解

    Java設計模式之靜態(tài)工廠模式詳解

    這篇文章主要介紹了Java設計模式之靜態(tài)工廠模式,簡單說明了靜態(tài)工廠模式的概念、原理、實現與使用方法,需要的朋友可以參考下
    2017-09-09
  • Java超詳細講解三大特性之一的多態(tài)

    Java超詳細講解三大特性之一的多態(tài)

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定
    2022-05-05
  • java Runnable接口創(chuàng)建線程

    java Runnable接口創(chuàng)建線程

    這篇文章主要介紹了java Runnable接口創(chuàng)建線程的相關資料,需要的朋友可以參考下
    2017-07-07
  • Springboot整合Mybatispuls的實例詳解

    Springboot整合Mybatispuls的實例詳解

    這篇文章主要介紹了Springboot整合Mybatispuls的相關資料,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 在SpringBoot框架下實現Excel導入導出的方法詳解

    在SpringBoot框架下實現Excel導入導出的方法詳解

    SpringBoot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程,今天我們就使用純前對按表格控件帶大家了解,如何在Spring Boot框架下實現Excel服務端導入導出,需要的朋友可以參考下
    2023-06-06
  • java中帶參數的try(){}語法含義詳解

    java中帶參數的try(){}語法含義詳解

    這篇文章主要介紹了java中帶參數的try(){}語法含義詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java中 Set與Map排序輸出到Writer詳解及實例

    java中 Set與Map排序輸出到Writer詳解及實例

    這篇文章主要介紹了 java中 Set與Map排序輸出到Writer詳解及實例的相關資料,需要的朋友可以參考下
    2017-03-03
  • 詳解java 拼音首字母搜索內容功能的示例

    詳解java 拼音首字母搜索內容功能的示例

    這篇文章主要介紹了詳解java 拼音首字母搜索內容功能的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

怀仁县| 泉州市| 通化市| 甘谷县| 长顺县| 东阿县| 连州市| 鲁山县| 正安县| 博爱县| 雅安市| 来安县| 阿勒泰市| 陇西县| 修文县| 个旧市| 宣城市| 沙雅县| 宣化县| 新郑市| 从江县| 诸城市| 灵寿县| 乐至县| 安多县| 清水河县| 南郑县| 巢湖市| 锡林郭勒盟| 浠水县| 威远县| 双桥区| 荥阳市| 湘西| 巴里| 清水县| 会昌县| 焦作市| 越西县| 孟连| 德阳市|