Belajar Memahami Konsep Shadowing pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada kesampatan kali ini saya akan berbagi tutorial mengenai konsep Shadowing pada Java, mungkin banyak diantara kalian yang belum tahu atau belum pernah menggunakan konsep Shadowing pada program yang kalian buat .Dengan menggunakan konsep ini digunakan kita dapat membuat sebuah variable atau parameter dengan nama yang sama pada OuterClass (Kelas Luar) dengan Inner Classnya (Kelas Dalam), tetapi mempunyai nilai atau fungsi yang berbeda.

Belajar Memahami Konsep Shadowing pada Java

Karena mempunyai nama variable yang sama, pada konsep Shadowing, kita dapat menggunakan kata kunci this untuk menyatakan ini objek siapa, penggunaannya hampir sama dengan kata kunci super, yaitu untuk mengakses variable atau method pada SuperClassnya jika didalam SubClass terdapat nama variable atau method yang sama, yang membedakan hanyalah, jika Shadowing mengacu pada OuterClass dan InnerClass dan super pada SuperClass dan SubClassnya.

Materi Lainnya Yang Direkomendasikan:

Konsep Shadowing pada Java

Pada contoh program berikut ini, kita akan membuat 2 buah class, dimana pada class pertama didalamnya akan kita tambahkan Inner Class serta contoh penggunaan Shadowing. Dan pada class yang kedua akan kita gunakan sebagai class utama untuk menjalankan program.

Pada class yang pertama, misalnya kita akan memberinya nama "KelasLuar", lalu didalamnya masukan source code berikut ini:

package WILDAN_TECHNO_ART;

class KelasLuar {
    
    //Variable pada OuterClass (Kelas Luar)
    String All_in_One = "Text Disini Milik KelasLuar";
    
    static class KelasDalam{
        
        //Variable pada Inner Class (Kelas Dalam)
        String All_in_One = "Text Hanya Untuk KelasDalam";
        
        void demo1(String All_in_One){
            //Mencetak dan Mengakses Variable Yang Terdapat pada Parameter
            System.out.println(All_in_One);
            
            //Mencetak dan Mengakses Variable yang Terdapat pada KelasDalam
            System.out.println(this.All_in_One);
            
            //Mengakses Variable yang Terdpat pada KelasLuar
            System.out.println(KelasDalam.this.All_in_One);
        }
    }
}

Coba kalian perhatikan, dengan menggunakan keyword this, kita dapat menentukan variable atau method mana yang akan di jalankan jika nama variable atau parameter tersebut ada yang sama antara OuterClass dan InnerClassnya.

Pada class utama, kita harus membuat instance dari KelasLuar terlebih dahulu, setelah itu membuat Instance/Objek dari ClassDalam.

package WILDAN_TECHNO_ART;

public class latihan_java {
    public static void main(String[] args){
        //Membuat Instance dari KelasLuar
        KelasLuar Outer = new KelasLuar();
        //Membuat Instance dari KelasDalam
        KelasLuar.KelasDalam data = Outer.new KelasDalam();
        //Memanggil Method demo1 untuk Mencetak Output
        data.demo1("Input Text Pada Parameter");
    }
}

Demo:

Contoh Penggunaan Konsep Shadowing pada Java

Sekian tutorial singkat mengenai konsep Shadowing, somoga materi yang saya berikan ini bisa bermanfaat untuk kalian semua. Jangan lupa untuk bereksperimen sendiri dan memahami lebih detail lagi mengenai Shadowing pada java.

Wassalamualaikum Warahmatullahi Wabarakatuh.

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