Contoh Penggunaan Inner Class pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Inner Class adalah class (kelas dalam) didalamnya class (kelas luar), class merupakan sebuah kerangka model/blueprint yang digunakan sebagai tempat menaruh atribut seperti variable, method, konstruktor, dll. Dalam pemrograman java, kita dapat menambahkan sebuah class (kelas dalam) didalam class (kelas luar) atau bisa disebut juga Nested Class, contoh lainnya seperti syntax pengkondisian if, yaitu kita dapat menambahkan if didalam if.

Contoh Penggunaan Inner Class pada Java

Inner Class atau Class Dalam mempunyai hah akses pada atribut atau method yang berada pada ClassLuar meskipun dalam kondisi modifier private, sebaliknya Class Luar tidak memiliki hak akses pada Class Dalam.

Materi Lainnya Yang Direkomendasikan:

Inner Class pada Java

Pada dasarnya Inner Class atau Nested Class digunakan untuk mengelompokan class pada satu tempat serta Menciptkan code yang readable dan maintainable pada java, syntax dasar untuk membuat Inner Class, sepert berikut ini:

class KelasLuar{
    
    //Statement pada Class Luar
    
    class KelasDalam{
        //Statement pada Class Dalam
    }
    
}

Karena Inner Class menggunakan Instance dari ClassLuar, maka membernya tidak dapat didekalarasikan dengan static.

Terdapat 2 jenis Inner Class pada java, yaitu non-static dan static, pada tutorial ini kita akan membahas kedua jenis Inner Class tersebut serta contoh penggunaannya.

A. Inner Class non-static

Inner Class adalah class yang tidak berada pada top level atau class yang dideklarasikan didalam class lain(Outer class). untuk mengakses variable atau method pada class luar, kita perlu membuat Instance/Objek Class Luar didalam Inner Class.

Innerclass memerlukan sebuah Instance/Objek dari ClassLuar untuk mengakses secara langsung mathod atau variablenya, kemuadian kita Instance Inner Classnya. Source codenya seperti berikut ini:

package WILDAN_TECHNO_ART;

//Outer Class/Kelas Luar
public class KelasLuar {
    
    //Class dalam/Inner Class Pertama
    private class Mobil{
        private String merk = "SUZUKI";
        private float kecepatan = 360.0f;
        private void jalankan(){
            System.out.println("Merk Mobil: "+merk);
            System.out.println("Kecepatan Mobil: "+kecepatan);
        }
    }
    
    //Class dalam/Inner Class Kedua
    private class Pengguna{
        private String nama = "Wildan";
        private int umur = 19;
        private void identitas(){
            System.out.println("Nama Saya: "+nama);
            System.out.println("Usia Saya: "+umur);
        }
    }
    
    public static void main(String[] args){
        //Membuat Instance dari KelasLuar
        KelasLuar outerclass = new KelasLuar();
        //Membuat Instance dari KelasDalam (Mobil)
        KelasLuar.Mobil data1 = outerclass.new Mobil();
        //Membuat Instance dari KelasDalam (Pengguna)
        KelasLuar.Pengguna data2 = outerclass.new Pengguna();
        
        //Menampilkan Hasil Output
        System.out.println("===== DATA DARI CLASS MOBIL ========");
        data1.jalankan();
        System.out.println("===== DATA DARI CLASS PENGGUNA =====");
        data2.identitas();
    }
}

Demo:

Penggunaan Inner Class non-static pada Java

Sudah saya jelaskan sebelumnya, Inner Class dapat digunakan untuk mengelompokan sesutu, jika kita mempunyai beberapa class yang mimiliki fungsi yang berbeda.

B. Inner Class static

Untuk mengubah Inner Class menjadi static, kita hanya perlu menambahkan kata kunci static di belakang class, Yang membedakan class static dengan non-static adalah pada class static kita tidak perlu Menginstance/Membuat objek dari classLuar terlebih dahulu, Inner Class static hanya perlu membuat instance dari classDalamnya saja.

Inner Class static lebih mudah dan praktis digunakan dibandingkan dengan non-static. Contoh sederhananya seperti berikut ini:

package WILDAN_TECHNO_ART;

//Outer Class/Kelas Luar
public class KelasLuar {
    
    //Class dalam/Inner Class Static
    private static class Programming{
        private String language;
        private void setLanguage(String language){
            this.language = language;
        }
        private String getLanguage(){
            return language;
        }
    }
    
    public static void main(String[] args){
        //Membuat Instance dari Kelas Dalam (Programming)
        KelasLuar.Programming MyLanguage = new KelasLuar.Programming();
        
        //Memasukan Nilai/Value
        MyLanguage.setLanguage("Java");
        
        //Menampilkan Hasil Output
        System.out.println("Saya Sedang Mempelajari: "+MyLanguage.getLanguage());
    }
}

Demo:

Penggunaan Inner Class static pada Java

Semoga tutorial yang saya berikan bisa bermanfaat walaupun masih banyak kekurang yang harus saya perbaiki, saya harap kalian bisa pahan betul dengan materi yang saya berikan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

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