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.
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:
- Mengenal Konsep Pewarisan (Inheritance) pada Java
- Mengenal Access Modifier pada Java
- Penggunaan Class Abstract dan Interface pada Java
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.
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:
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:
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:
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.