程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的匿名外部類小結

Java中的匿名外部類小結

編輯:關於JAVA

Java中的匿名外部類小結。本站提示廣大學習愛好者:(Java中的匿名外部類小結)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的匿名外部類小結正文


java外部類分為: 成員外部類、靜態嵌套類、辦法外部類、匿名外部類 。

在java的世界裡,供給了匿名外部類語法,用於贊助年夜家簡化代碼,本文扼要從接口,籠統類和慣例類以代碼的情勢描寫其經常使用形式。

1. 接口形式

public interface IWriter {
void write();
}
public static void main(String[] args) {
IWriter writer = new IWriter() {
@Override
public void write() {
System.out.println("IWriter write...");
}
};
writer.write();
}

2.籠統類

public abstract class AbstractWriter {
public abstract void write();
}
public static void main(String[] args) {
AbstractWriter abstractWriter = new AbstractWriter() {
@Override
public void write() {
System.out.println("AbstractWriter write...");
}
};
abstractWriter.write();
} 

3.慣例類

public class TextWriter implements IWriter {
@Override
public void write() {
System.out.print("text writer..");
}
}
public static void main(String[] args) {
TextWriter textWriter = new TextWriter() {
@Override
public void write() {
System.out.println("TextWriter 2 write...");
}
};
textWriter.write();
} 

4.在線程中應用

public static void main(String[] args) {
Thread thread = new Thread() {
@Override
public void run() {
new IWriter() {
@Override
public void write() {
System.out.println("IWriter thread write...");
}
}.write();
}
};
thread.run();
}

5.結語

綜上可以看出,其實不論是接口中,籠統類,照樣慣例類派生出來的匿名外部類,其用法都是一樣的。之所以說這個是一個語法糖,其實質是編譯器在編譯的時刻,將匿名外部類零丁編譯成不多個分歧的class,這個和零丁寫完成類後再挪用其實實質是一樣,詳細可以拜見編譯後生成目次.以下截圖所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved