匿名類
匿名類是不能有名稱的類,所以沒辦法引用它們。必須在建立時,作為new語句的一部分來宣告它們。
這就要採用另一種形式的new語句,如下所示:
new 《類或介面》 《類的主體》
這種形式的new語句宣告乙個新的匿名類,它對乙個給定的類進行擴充套件,或者實現乙個給定的介面。它還建立那個類的乙個新例項,並把它作為語句的結果而返回。要擴充套件的類和要實現的介面是new語句的運算元,後跟匿名類的主體。
如果匿名類對另乙個類進行擴充套件,它的主體可以訪問類的成員、覆蓋它的方法等等,這和其他任何標準的類都是一樣的。如果匿名類實現了乙個介面,它的主體必須實現介面的方法。
注意匿名類的宣告是在編譯時進行的,例項化在執行時進行。這意味著for迴圈中的乙個new語句會建立相同匿名類的幾個例項,而不是建立幾個不同匿名類的乙個例項。
從技術上說,匿名類可被視為非靜態的內部類,所以它們具有和方法內部宣告的非靜態內部類一樣的許可權和限制。
如果要執行的任務需要乙個物件,但卻不值得建立全新的物件(原因可能是所需的類過於簡單,或者是由於它只在乙個方法內部使用),匿名類就顯得非常有用。匿名類尤其適合在swing應用程式中快速建立事件處理程式。
Java匿名類,Java匿名內部類
匿名類是指沒有類名的內部類,必須在建立時使用 new 語句來宣告類。其語法形式如下 new 類或介面 這種形式的 new 語句宣告乙個新的匿名類,它對乙個給定的類進行擴充套件,或者實現乙個給定的介面。使用匿名類可使 更加簡潔 緊湊,模組化程度更高。匿名類有兩種實現方式 下面通過 來說明。public...
java中匿名類的注意細節
abstract class outer public abstract void show1 public abstract void show2 public class pc public void show2 public void show3 show3 outer out new out...
Java中匿名類的兩種實現方式
public class testanonymousinterclass 在這個方法中構造了乙個匿名內部類 private void show anonyinter.show 呼叫其方法 這是乙個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現 class out 使用匿名內部類課使 更加...