Contoh Inner Class dalam Java

Tuesday, March 29, 2011 5:22 PM by Computer and Programming

class KelasTerluarA {   
       private String pesan = "Objek dari KelasTerluarA ";
   
    //Method konstruktor untuk kelas KelasTerluarA
    KelasTerluarA(String noObjek) {
      pesan = pesan + noObjek;
    }
   
    //Method cetak pesan yang dimiliki oleh kelas KelasTerluarA
    public void cetakPesan() {
      System.out.println(pesan);
      }

    //Kelas Inner tingkat pertama
    class KelasInnerB {         
        private String pesan = "Objek dari KelasInnerB ";
       
        //Method konstruktor untuk kelas KelasInnerB
        KelasInnerB(String noObjek) {
             pesan = pesan + noObjek;
        }
       
        //Method cetak pesan yang dimiliki oleh KelasInnerB
        public void cetakPesan() {
            System.out.println(pesan);
        }

        //Kelas Inner tingkat kedua
        class KelasInnerC {            
               private String pesan = "Objek dari KelasInnerC ";
            KelasInnerC(String noObjek) {
               pesan = pesan + noObjek;
            }
           
            //Method cetak pesan yang dimiliki oleh KelasInnerC
            public void cetakPesan() {
                               
                               /** cetakPesan yang dimiliki oleh KelasInnerC */
                System.out.println(pesan);                
                System.out.println(this.pesan);           
                System.out.println(KelasInnerC.this.pesan);    
             
                            /** cetakPesan dari variabel yang dimiliki
                                oleh objek dari KelasInnerB */
                System.out.println(KelasInnerB.this.pesan);    
                KelasInnerB.this.cetakPesan();             
             
                /** cetakPesan dari variabel yang dimiliki
                    oleh objek dari KelasInnerA */
                   System.out.println(KelasTerluarA.this.pesan);
                KelasTerluarA.this.cetakPesan();
                  
                System.out.println("\n");        
            }
        }
    }
}
public class DemoKelasInner {

       /**Main Method*/
    public static void main(String args[]) {                  
       
        /**
         * Mengakses method cetakPesan yang dimiliki oleh
         * KelasInnerC yang tersarang pada KelasTerluarA dan
         * KelasInnerB -- A(B(C)) dengan membuat objekKelasA ->
         * objekKelasB -> objekKelasC.namaMethod
         */
        KelasTerluarA a = new KelasTerluarA("Cara 1");                       
        KelasTerluarA.KelasInnerB b = a.new KelasInnerB("Cara 1"); 
        KelasTerluarA.KelasInnerB.KelasInnerC c =
        b.new KelasInnerC("Cara 1");         
        c.cetakPesan();     
       
        /**
         * Mengakses method cetakPesan yang dimiliki oleh
         * KelasInnerC yang tersarang pada KelasTerluarA dan
         * KelasInnerB -- A(B(C)) dengan membuat objekKelasB ->
         * objekKelasC.namaMethod
         */
        KelasTerluarA.KelasInnerB bb = new
                  KelasTerluarA("Cara 2").new KelasInnerB("Cara 2");
        KelasTerluarA.KelasInnerB.KelasInnerC cc =
        bb.new KelasInnerC("Cara 2");       
        cc.cetakPesan();
       
        /**
         * Mengakses method cetakPesan yang dimiliki oleh
         * KelasInnerC yang tersarang pada KelasTerluarA dan
         * KelasInnerB -- A(B(C)) dengan membuat
         * objekKelasC.namaMethod
         */
              KelasTerluarA.KelasInnerB.KelasInnerC ccc = new
              KelasTerluarA("Cara 3").new KelasInnerB("Cara 3").new
              KelasInnerC("Cara 3");    
        ccc.cetakPesan();   
    }
}

0 Response to "Contoh Inner Class dalam Java"

Post a Comment