Cara Menggunakan Anonymous Class pada Java

Cara Menggunakan Anonymous Class pada Java

Assalmualaikum Warahmatullahi Wabarakatuh.

Anonymous Class adalah salah satu konsep dari class atau interface pada java, yang digunakan untuk mengdeklarasikan dan menginisialisasi objek dari class lain dalam waktu bersamaan, dengan menggunakan Anonymous Class, kita dapat mempersingkat kode program, Anonymous Class hampir sama dengan Inner Class, hanya saja tidak memiliki nama dan hanya memiliki body.


Dengan menggunakan Class Anonymous, kita tidak perlu menggunakan kata kunci implements untuk menginplementasikan interface pada kelas yang diwariskannya, kita hanya perlu membuat Instance dari class tersebut pada class yang ingin diwariskan.

Sebelum melanjutkan tutorial berikut ini, ada beberapa meteri yang harus kalian pelajari sebelumnya, yaitu:

Jika kalian sudah mempelajari dan memahami ketiga materi tersebut, maka akan lebih mudah untuk mempelajari tutorial berikut ini.

Anonymous Class pada Java

Anonymous Class merupakan sebuah konsep dari class atau interface untuk inisialisasi objek dari class lain. Pada tutorial ini, sebelumnya kalian harus membuat class interface terlebih dahulu, didalamnya akan kita tambahkan beberapa method abstract, karena menggunakan method abstract, jadi tidak ada implementasinya secara langsung, hanya nama method saya.

Abstract atau Interface pada umumnya digunakan oleh seorang programmer sebagai referensi atau sebagai gambaran dari program yang akan dibuatnya.

Pertama kita akan membuat interfacenya terlebih dahulu, misalnya akan kita berinama "Hewan" serta tambahkan beberapa method abstract seperti berikut ini:

package WILDAN_TECHNO_ART;

interface Hewan {
    void Jenis();
    void Makanan();
    void Suara();
}

Kita bisa melakukan apa saja pada method tersebut, selanjutnya buatlah class baru, class tersebut akan digunakan sebagai kelas utama kita, didalam class tersebut tambahkan sebuah Instance/Objek dari Inteface yang sudah kita buat sebelumnya.

Dengan menggunakan konsep Anonymous, kita tidak perlu menggunakan keyword implements pada class utama atau class yang ingin diwariskannya, kita hanya perlu membuat sebuah instance dan mengoverriding method-method didalam interface pada kelas utama:

package WILDAN_TECHNO_ART;

public class latihan_java {
    
    //Membuat Instance Hewan (Static)
    static Hewan data = new Hewan() {
        
        //Contoh Penggunaan Anonymous Class
        @Override
        public void Jenis() {
            System.out.println("Kucing");
        }

        @Override
        public void Makanan() {
            System.out.println("Ikan");
        }

        @Override
        public void Suara() {
            System.out.println("Miaw Meong");
        }
    }; //Block Anonymous Class Harus Di Akhiri Titik Koma
    
    public static void main(String[] args){
        //Memanggil dan Menjalankan Method Anonymous
        data.Jenis();
        data.Makanan();
        data.Suara();
    }
}

Jangan lupa jika Class Anonymous ditempatkan diluar method main, modifier pada Instance/Objek Hewan harus menggunakan static,karena method main tidak dapat menerima atribut yang bertipe non-static.

Demo:

Contoh sederhana penggunaan anonymous class pada java

Pada Anonymous Class terdpat beberapa komponen pendukung yang bisa kalian gunakan. Seperti :
  • Operator new.
  • Nama dari interface atau extends.
  • Tanda Kurung yang mengandung argument, seperti halnya normal class. akan tetapi ketika kita menggunakan interface, kita tidak dapat menggunakan constructor. Jadi harus kita mengosongkan tanda kurungnya.
  • Terakhir adalah Body.

Anonymous adalah sebuah class yang dideklarasikan dalam sebuah expressi, maka class tersebut menjadi bagian dari statement.

Pada contoh sebelumnya kalian sudah mempelajari contoh sederhana dari penggunaan anonymous class pada java. Selanjutnya kita akan memcoba membuat interface yang berbeda, didalamnya terdapat satu method abstract dengan 3 parameter.

package WILDAN_TECHNO_ART;

interface DemoAnonymous {
    void LakukanSesuatuCoy(String data1, int data2, boolean data3);
}

Akan kita coba gunakan secara langsung pada method main serta memberikan nilai pada masing-masing parameter didalamnya.

package WILDAN_TECHNO_ART;

public class latihan_java {
    public static void main(String[] args){
        DemoAnonymous demo = new DemoAnonymous() {
            @Override
            public void LakukanSesuatuCoy(String data1, int data2, boolean data3) {
                System.out.println("Nama Saya: "+data1);
                System.out.println("Usia Saya: "+data2);
                System.out.println("Kondisi Saya: "+data3);
            }
        };
        //Menjalankan Method serta Memberikan Nilai Pada Parameter
        demo.LakukanSesuatuCoy("Wildan", 19, true);
    }
}

Demo:

Contoh kedua penggunaan anonymous class pada java

Anonymous Class memiliki beberpa point yang tidak boleh kita lakukan, seperti :
  • Kita tidak dapat mendeklarasikan static atau member interface dalam anonymous class
  • Kita dapat mendeklarasikan static member dalam anonymous class apabila dideklarasikan sebagai constant variabel.
  • Kita tidak dapat mendeklarasikan constructor dalam anonymous class.

Seperti local class, anonymous class dapat menangkap variabel. Class ini memiliki kesamaan dalam hal access local variabel dari class yang ditempatinya, seperti :
  • Anonymous dapat mengakses member dari class yang ditempatinya.
  • Anonymous class tidak dapat mengakses local variabel dari scope class yang ditempatinya apabila local variabel tersebut tidak dideklarsikan final.
  • Seperti Inner Class, dalam deklarasi variabel didalam anonymous class dapat sama(shadow) dengan pendeklarasian variabel dalam scope class yang ditempatinya.

Semoga materi yang saya berikan bisa bermanfaat untuk kalian, apabila ada kesalahan saya mohon maaf yang sebesar besarnya.

Wasalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.