1. 程式人生 > 其它 >Java--匿名類(學習筆記)

Java--匿名類(學習筆記)

匿名類的特點:

(1) 匿名類是final類;
(3) 在匿名類中可以定義例項變數和若干個例項初始化程式碼塊和新的例項方法。Java虛擬機器首先呼叫父類的構造方法,然後按照例項變數的和例項初始化程式碼塊定義的先後次序依次進行初始化。
(4) 匿名類除了可以繼承類以外,還可以實現介面;
(5) 匿名類可以訪問外部類的所有成員,如果匿名類位於一個方法中,還能訪問所在方法的final型別的區域性變數。

public class Outer {
        Outer(int v) {
            System.out.println("another constructor");
        }
        Outer() {
            System.out.println(
"default constructor"); } void f() { System.out.println("from Outer"); }; public static void main(String args[]) { new Outer().f(); // 顯示from Outer final int i = 1; Outer a = new Outer(i) { // 匿名類 { System.out.println(
"initialize constructor"); } void f() { System.out.println("from anonymous" + " " + i); } }; a.f(); // 顯示from anonymous } } /* 執行結果 default constructor from Outer another constructor initialize constructor from anonymous 1
*/
/*
說明:以上“new Outer(){…}”定義了一個繼承類Outer的匿名類,大括號內是類Outer的類體,“new Outer(){…}”返回匿名類的一個例項的一個引用
*/