內部類詳解

2022-05-15 19:25:26 字數 1569 閱讀 4398

1.成員內部類與區域性內部類的區分

package com.vg.demo03;

/** * 內部類的位置:

* 1.成員位置——>成員變數

* 2.區域性位置——>區域性變數

* */

//外部類

public class outer

public void method() }}

//成員內部類變數名方法名和區域性內部類可以一樣

2.成員內部類與區域性內部類的訪問特點

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

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

package com.vg.demo03;

/** * 內部類的訪問——內部類造物件

* 成員內部類造物件

* */

//外部類

class outer

public static int num2;

//靜態內部類

public static class inner3 }

//成員內部類

public class inner }

public void method()

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

inner2 i2 = new inner2();

i2.method1(); }}

public class outertest

}

package com.vg.demo03;

//**來分析靜態內部類與非靜態內部類的區別

public class outclasstest

static void outstatic()

public class innerclass

//static void inner(){}

//static int i=1;

//非靜態內部類不能有靜態成員(方法、屬性)

} public static class innerstaticclass

//靜態內部類能有能有靜態成員(方法、屬性)

static void innerstatic() {}

static int i = 1;

} public static void main(string args)

}

1.是否能擁有靜態成員

靜態內部類可以有靜態成員(方法,屬性),而非靜態內部類則不能有靜態成員(方法,屬性)。

2.訪問外部類成員

靜態內部類只能夠訪問外部類的靜態成員,而非靜態內部類則可以訪問外部類的所有成員(方法,屬性),外部類的靜態成員不可以直接使用非靜態內部類。

3.靜態內部類和非靜態內部類在建立時有區別

//假設類a有靜態內部類b和非靜態內部類c,建立b和c的區別為:

a a=new a();

a.b b=new a.b(); //靜態內部類

a.c c=a.new c();

內部類詳解

放在乙個類內部的類就叫做內部類 二.內部類的作用 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...

內部類詳解

內部類的訪問特點 區域性內部類訪問區域性變數的注意事項 匿名內部類 定義 把類定義在其他類的內部,這個類就被稱為內部類。成員位置 成員內部類 區域性位置 區域性內部類 成員內部類 成員變數 靜態成員內部類 靜態成員變數 區域性內部類 區域性變數 匿名內部類 public class outer pu...