成員內部類,區域性內部類,靜態內部類,匿名內部類

2021-08-15 23:03:27 字數 1764 閱讀 4928

成員內部類

class demo1_innerclass }/*

* a:內部類概述

* b:內部類訪問特點

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

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

* 外部類名.內部類名 物件名 = 外部類物件.內部類物件;

* */

class outer

}}

class demo2_innerclass 

}class outer

} public void print()

}

class test1_innerclass 

}//要求:使用已知的變數,在控制台輸出30,20,10。

//內部類之所以能獲取到外部類的成員,是因為他能獲取到外部類的引用外部類名.this

class outer

}}

靜態內部類

class demo1_innerclass 

}class outer

} static class inner2

}}

區域性內部類

class demo1_innerclass 

}//區域性內部類

class outer

} inner i = new inner();

i.print();

} /*public void run() */

}

匿名內部類

class demo1_nonameinnerclass }/*

* a:匿名內部類

* 就是內部類的簡化寫法。

* b:前提:存在乙個類或者介面

* 這裡的類可以是具體類也可以是抽象類。

* c:格式:

* new 類名或者介面名()

* d:本質是什麼呢?

* 是乙個繼承了該類或者實現了該介面的子類匿名物件。**/

inte***ce inter

class outer

} public void method()

}.print();

}}

class demo2_nonameinnerclass 

}inte***ce inter

//匿名內部類只針對重寫乙個方法時候使用

class outer

public void show2()

}.show1();

new inter()

public void show2()

}.show2();*/

inter i = new inter()

public void show2()

/*public void show3() */

};i.show1();

i.show2();

//匿名內部類是不能向下轉型的,因為沒有子類類名

}}

class test2_nonameinnerclass 

}//按照要求,補齊**

inte***ce inter

class outer

}; }}

//要求在控制台輸出」helloworld」

靜態內部類,成員內部類,區域性內部類,匿名內部類

一 靜態內部類 它是用static修飾的,在訪問限制上它只能訪問外部類中的static所修飾的成員變數或者是方法 演示 public class test 01 public static void main string args 二 成員內部類 成員內部類是最普通的內部類,它可以無條件訪問外部類...

匿名內部類,成員內部類,區域性內部類,靜態內部類

在類的成員位置定義乙個內部類,相當於成員的屬性。在類方法中呼叫成員內部類的屬性和方法需要先建立乙個物件,通過物件來訪問成員內部類中的屬性和方法。在內部類中可以直接呼叫外部類的靜態屬性,方法和非靜態屬性,方法 成員內部類物件建立方法 package test public class innercla...

內部類 成員內部類 區域性內部類 匿名內部類

public class 外部類 private int num 0 外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問 使用方式 1.外部類使用內部類,主函式再使用外部類 2.通過new的方式 外部類.內部類 物件名 new 外部類 new 內部類 定義在方法內部的類,就是區域性內部類,只有...