Contoh Penggunaan Inner Class pada Java
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.
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(){
[Link]("Merk Mobil: "+merk);
[Link]("Kecepatan Mobil: "+kecepatan);
}
}
//Class dalam/Inner Class Kedua
private class Pengguna{
private String nama = "Wildan";
private int umur = 19;
private void identitas(){
[Link]("Nama Saya: "+nama);
[Link]("Usia Saya: "+umur);
}
}
public static void main(String[] args){
//Membuat Instance dari KelasLuar
KelasLuar outerclass = new KelasLuar();
//Membuat Instance dari KelasDalam (Mobil)
[Link] data1 = [Link] Mobil();
//Membuat Instance dari KelasDalam (Pengguna)
[Link] data2 = [Link] Pengguna();
//Menampilkan Hasil Output
[Link]("===== DATA DARI CLASS MOBIL ========");
[Link]();
[Link]("===== DATA DARI CLASS PENGGUNA =====");
[Link]();
}
}
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:
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){
[Link] = language;
}
private String getLanguage(){
return language;
}
}
public static void main(String[] args){
//Membuat Instance dari Kelas Dalam (Programming)
[Link] MyLanguage = new [Link]();
//Memasukan Nilai/Value
[Link]("Java");
//Menampilkan Hasil Output
[Link]("Saya Sedang Mempelajari:
"+[Link]());
}
}
Demo: