Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
Menguasai Kelas Dalam Anonim Java
Temukan cara mendefinisikan, mengimplementasikan, dan memanfaatkan kelas dalam anonim di Java dengan contoh dunia nyata yang jelas.
Di Java, sebuah kelas dapat menyisipkan kelas lain—sebuah inner class. Ketika inner class tidak memiliki nama eksplisit, ia disebut kelas dalam anonim.
Kelas dalam anonim didefinisikan secara inline di dalam kelas atau ekspresi lain. Karena mereka tidak memiliki nama, mereka hanya dibuat saat kode enclosing berjalan, menjadikannya ideal untuk implementasi singkat, satu kali pakai.
Pola yang umum adalah:
class OuterClass { // buat instance kelas dalam anonim Type instance = new Type(parameters) { // overridden methods or additional behavior }; }
Di sini, Type dapat menjadi:
- sebuah superclass yang diperluas oleh kelas anonim
- sebuah antarmuka yang diimplementasikan oleh kelas anonim
Pada waktu runtime, pernyataan di atas membuat instance kelas anonim, yang kemudian dapat digunakan melalui tipe referensi yang dideklarasikan.
Penting: Karena deklarasi adalah ekspresi, titik koma penutup mengakhiri pernyataan, bukan badan kelas.
Contoh 1: Memperluas Kelas dengan Kelas Dalam Anonim
class Polygon { public void display() { System.out.println("Di dalam kelas Polygon"); } } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Di dalam kelas anonim."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } }
Output
Di dalam kelas anonim.
Dalam ilustrasi ini, kelas anonim memperluas Polygon dan meng-override display(). Saat createClass() berjalan, instance subclass anonim dibuat, dan metode yang di-override-nya dipanggil.
Contoh 2: Mengimplementasikan Antarmuka dengan Kelas Dalam Anonim
interface Polygon { void display(); } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Di dalam kelas anonim."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } }
Output
Di dalam kelas anonim.
Di sini, kelas anonim mengimplementasikan antarmuka Polygon, menyediakan implementasi metode yang diperlukan dalam satu blok yang ringkas.
Mengapa Menggunakan Kelas Dalam Anonim?
Kelas dalam anonim sangat cocok dalam skenario di mana Anda membutuhkan implementasi singkat yang spesifik konteks:
- Event listeners dan callbacks dalam framework GUI—mudah menambahkan perilaku tanpa membuat kelas bernama terpisah.
- Pembuatan Thread melalui
Runnable—tulis logika run secara inline. - Local adapters atau wrappers—override beberapa metode dari kelas yang ada.
Manfaatnya meliputi:
- Kesempitan—tidak ada file atau deklarasi kelas terpisah.
- Kontrol scope—kelas hanya terlihat di tempat ia didefinisikan.
- Fleksibilitas runtime—instance hanya dibuat saat diperlukan.
Untuk logika yang lebih besar dan dapat digunakan kembali, pertimbangkan kelas bernama atau ekspresi lambda (untuk antarmuka fungsional) untuk menjaga kode tetap mudah dipelihara.