內部類和匿名內部類

2021-08-02 21:05:06 字數 1277 閱讀 8716

把類定義在其他類的內部, 這個類就被稱為內部類

舉例: 在類 a 中定義了乙個類 b, 類 b 就是內部類。

內部類的訪問特點:

內部類可以直接訪問外部類的成員, 包括私有。

外部類要訪問內部類的成員, 必須建立物件。

按照內部類在類中定義的位置不同, 可以分為如下兩種格式:

成員位置(成員內部類)

一般內部類就是不讓外界直接訪問的。

成員內部的常見修飾符:private 、static

private 為了保證資料的安全性

static 為了讓資料訪問更方便(ps:被靜態修飾的成員內部類只能訪問外部類的靜態成員)

class outer 

public

static

void

show2()

}} class innerclassdemo4

}

區域性位置(區域性內部類)

可以直接訪問外部類的成員

可以建立內部類物件, 通過物件呼叫內部類方法, 來使用區域性內部類功能

區域性內部類訪問區域性變數的注意事項:

必須被 final 修飾。

因為區域性變數會隨著方法的呼叫完畢而消失, 這個時候, 區域性物件並沒有立馬從堆記憶體中消失, 還要使用那個變數。 為了讓資料還能繼續被使用, 就用 fianl 修飾, 這樣, 在堆記憶體裡面儲存的其實是乙個常量值。 通過反編譯工具可以看一下。

class outer 

} inner i = new inner();

i.show();

}} class innerclassdemo5

}

上述例子能看出來區域性內部類的執行範圍只能在它其中的方法中。

匿名內部類

就是內部類的簡化寫法。

前提:1. 存在乙個類或者介面2.這裡的類可以是具體類也可以是抽象類。

格式:new 類名或者介面名()

本質:是乙個繼承了類或者實現了介面的子類匿名物件

inte***ce inter 

class outer

public

void

show2()

};i.show();

i.show2();

}}

內部類和匿名內部類

內部類 取個類名inner 有三種 成員內部類 相當於類中的成員 1.可以訪問外部類的成員變數.2.類中的成員函式訪問內部類 建立內部類的物件進行訪問.如 inner in new inner 3.外部其他類 不是內部類的直接外部類 訪問內部類的成員建立物件.格式 外部類名 內部類名 變數名 new...

內部類和匿名內部類

內部類訪問特點 1,內部類可以直接訪問外部類中的成員。2,外部類要訪問內部類,必須建立內部類的物件 用於類的設計 分析事物時,發現該事物描述中還有事物,而且這個事物還在訪問被描述事物的內容,這時就是還有的事物定義成內部類來描述。class outer static void function 如果內...

內部類和匿名內部類

1.定義在乙個類裡邊函式之外的內部類,成員變數的書寫位置是相同的 2.巢狀內部類的類 被稱作外部類 3.為什麼要使用內部類,此類只在當前 類中 檔案中 使用 4.一般成員內部類建立物件,只在它所屬的外部類中建立 for example public class snippet class mothe...