內部類詳解

2021-10-20 22:37:16 字數 1279 閱讀 5937

內部類的訪問特點

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

匿名內部類

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

成員位置(成員內部類)

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

成員內部類—成員變數

靜態成員內部類—靜態成員變數

區域性內部類—區域性變數

匿名內部類

public

class

outer

public

static

int num2;

//靜態內部類

public

static

class

inner3

public

void

method()

//區域性內部類只能在區域性範圍使用

inner2 i2=

newinner2()

;}}class

test

}

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

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

變數必須被final修飾!

為什麼?

因為區域性變數會隨著方法的呼叫完畢而消失,這個時候,區域性內物件並沒有立馬從堆記憶體中消失,

還要使用那個變數。為了讓資料還能繼續被使用,就用final修飾,這樣,在堆記憶體裡面儲存的其實是乙個常量值。

匿名內部類就是內部類的簡化寫法。其本質是乙個繼承了類或者實現了介面的子類匿名物件。

使用前提:存在乙個類或者介面(這裡的類可以是具體也可以是抽象類)。

本質:匿名內部類是乙個介面或者抽象類的實現類或者子類的物件。

inte***ce

aclass

bimplementsa}

abstract

class

cpublic

class

test1};

aa.method()

;//匿名內部類的形式建立抽象類物件

c c=

newc()

@override

public

void

method2()

};c.

method1()

; c.

method2()

; a a=

newb()

;//多型

a.method()

;}}

內部類詳解

放在乙個類內部的類就叫做內部類 二.內部類的作用 1.內部類可以實現很好的隱藏 一般非內部類不允許有private,protected修飾的 內部類可以 2.內部類擁有外圍類所有的訪問許可權 3.可以實現多繼承 public class son class mother 1 extends moth...

內部類詳解

outer2.inner oi new outer2 new inner 方法2 thr 02 th new thr 02 inc1 i1 th.new inc1 注釋 i1和i2是同乙個物件的不同內部類物件 inc2 i2 th.new inc2 public class innerclassde...

內部類詳解

1.成員內部類與區域性內部類的區分 package com.vg.demo03 內部類的位置 1.成員位置 成員變數 2.區域性位置 區域性變數 外部類 public class outer public void method 成員內部類變數名方法名和區域性內部類可以一樣2.成員內部類與區域性內部...