Dasar Java : Nested Class – Class Anonymous

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Class anonymous adalah class yang tidak memilki nama. Mereka umumnya dideklarasikan sebagai subclass dari suatu class yang ada, atau sebagai implementasi dari beberapa interface

Class-class anonymous didefinisikan ketika mereka diinstansiasi. Berikut contoh pendeklarasian suatu subclass anonymous dari superclass yang disebut SuperClass:

[code language=”java”]

public class SuperClass {

public void doIt() {
System.out.println("SuperClass doIt()");
}

}

SuperClass instance = new SuperClass() {

public void doIt() {
System.out.println("Anonymous class doIt()");
}
};

instance.doIt();

[/code]

Menjalankan kode tersebut diatas akan menghasilkan Anonymous class doIt() dikeluarkan ke System.out. Subclass dari class anonymous (extends) SuperClass dan menimpa metode doIt()

Class-class anonymous juga mengimplementasikan suatu interface, bukan melebarkan suatu class. Berikut contohnya :

[code language=”java”]

public interface MyInterface {

public void doIt();

}

MyInterface instance = new MyInterface() {

public void doIt() {
System.out.println("Anonymous class doIt()");
}
};

instance.doIt();

[/code]

Sebagaimana yang kita lihat, ini sama dengan suatu class anonymous melebarkan class yang lain.

Suatu class anonymous dapat mengakses anggota class penaungnya. Dia juga dapat mengakses variabel-variabel lokal yang dideklarasikan final atau effectively final

Kita dapat mendeklarasikan fields dan metode didalam suatu class anonymous, tetapi kita tidka mendeklarasikan konstruktor. Tapi kita dapat mendeklarasikan suatu inisialiser statik pula

Berikut contohnya :

[code language=”java”]

final Strint textToPrint = "Text…";
MyInterface instance = new MyInterface() {

private String text;

//static initializer
{ this.text = textToPrint; }

public void doIt() {
System.out.println(this.text);
}
};

instance.doIt();

[/code]

Aturan-aturan yang sama pada shadowing juga berlaku pada class-class anonymous sebagaimana untuk inner class.

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.