普通內部類
聲明在類的內部:
class Outer{ int param1; String str; Inter inter = new Inter(); void test(){ System.out.普通內部類可以訪問外部類的所有成員變量和方法方法內部的內部類class Outer{ int param1; String str; Inter inter = new Inter(); void test(){ System.out.println("I am test method of class Outer"); class Inter{//方法內的內部類只能在方法內使用 int param2; void testInter(){ System.out.println("I am test method of class Inter"); } } }}3. 靜態內部類class Outer{ int param1; String str; Inter inter = new Inter(); void test(){ System.out.println("I am test method of class Outer"); //外部類訪問靜態內部類方法或者變量,可以直接使用 內部類.方法名或變量名 Inter.testInter(); } static class Inter{ int param2; void testInter(){ //param1 = 1;靜態內部類不能訪問外部類的非靜態成員變量和方法,可以訪問外部類的常量。因為靜態類在類加載時就已經完成初始化,final修飾的常量也是同理。而非靜態變量和方法是在對象創建時才分配內存,所以靜態類不能訪問 System.out.println("I am test method of class Inter"); } }}class Test{ public static void main(String [] args){ //如果要在外部類以外的地方使用外部類的靜態內部類, //可以直接使用Outer.Inter.變量名或方法名 Outer.Inter.testInter(); }}4. 匿名內部類class Listner{ int a; void onClick(){ System.out.println("click事件"); }}class Outer{ int p; String str; Listner lis = new Listner(){ void onClick(){ //重寫父類的方法; } }}新聞熱點
疑難解答