天天看點

java中匿名内部類的使用(僅限介紹實際使用的兩種方法)

  • 使用的場景:

    匿名内部類可以使你的代碼更加簡潔,你可以在定義一個類的同時對其進行執行個體化。它與局部類很相似,不同的是它沒有類名,如果某個局部類你隻需要用一次,那麼你就可以使用匿名内部類。

  • 使用步驟
  1. 定義匿名内部類
  2. 匿名内部類的文法
  3. 通路作用域的局部變量、定義和通路匿名内部類成員
  4. 匿名内部類執行個體
  • 兩種案例類型
  1. 實作接口的匿名類
HelloWorld frenchGreeting = new HelloWorld() {
String name = "tout le monde";
public void greet() {
      greetSomeone("tout le monde");
}
public void greetSomeone(String someone) {
     name = someone;
     System.out.println("Salut " + name);
}
};      
  1. 匿名子類(繼承父類)
public class AnimalTest {

private final String ANIMAL = "動物";

public void accessTest() {
    System.out.println("匿名内部類通路其外部類方法");
}

class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public void printAnimalName() {
        System.out.println(bird.name);
    }
}

// 鳥類,匿名子類,繼承自Animal類,可以覆寫父類方法
Animal bird = new Animal("布谷鳥") {

    @Override
    public void printAnimalName() {
        accessTest();           // 通路外部類成員
        System.out.println(ANIMAL);  // 通路外部類final修飾的變量
        super.printAnimalName();
    }
};

public void print() {
    bird.printAnimalName();
}

public static void main(String[] args) {

    AnimalTest animalTest = new AnimalTest();
    animalTest.print();
}
}      

運作結果:

繼續閱讀