Static Nested Class

  • Static nested class adalah inner class dengan modifier static. [2]
  • Static nested class sebenarnya bukan inner class, static nested class hanyalah top-level class yang di sarangkan di dalam class lain. [2]
  • Karena static, maka untuk membuat instance dari static nested class tidak diperlukan instance dari outer classnya. [2] (tidak seperti regular inner class ataupun method-local inner class [1]).
Contoh : [1]
Program 15

class A {
    static class B {
        void lakukanSesuatu() {
            System.out.println("Hallo");
        }
    }
}

public class StaticNestedClass {
    public static void main(String[] args) {
        A.B b = new A.B(); //cara instansiasi static nested class
        b.lakukanSesuatu();
    }
}


  • Cara instansiasi static nested inner class adalah : [2]
NamaOuterClass.NamaStaticNestedClass varRef = new NamaOuterClass.NamaStaticNestedClass()

  • Static nested class tidak dapat mengakses non-static member dari outer classnya. [2]
Contoh : [1]
Program 16

class A {
    int i = 10;
    static class B {
        void lakukanSesuatu() {
            System.out.println("i = " + i);
        }
    }
}

public class StaticNestedClass2 {
    public static void main(String[] args) {
        A.B b = new A.B();
        b.lakukanSesuatu();
    }
}

0 komentar:

Poskan Komentar