สนับสนุนโดย

วันพฤหัสบดีที่ 13 ธันวาคม พ.ศ. 2561

การใช้ Inner Class ซ้อนกัน

ปกติเรามักไม่ค่อยได้เห็นคนที่เขียนโค้ดเอา class มาซ้อนกัน แต่ในบางกรณีเราก็จำเป็นต้องทำแบบนั้น เพื่อจำกัดขอบเขตการใช้งาน class ใดๆ เพียงแค่ในกรอบนั้นเท่านั้น

เช่น

class A{
  class B {
  }
}


อันนี้คือซ้อนกันแค่ 2 ชั้น แต่ความจริงซ้อนได้หลายชั้นครับ ไม่ได้จำกัดว่ากี่ชั้น กฏมีอยู่ว่า
1. คลาสข้างในจะต้องเป็น static class เท่านั้น
2. การ new object จะต้องเรียก class ชั้นนอกสุดก่อน เช่น new A.B(); เป็นต้น

ตัวอย่างโค้ดจริง
package myPackage;

public class InnerClass {
    static class A {
        A() {
            System.out.println("A");
        }
    }
    static class B {
        B() {
            System.out.println("B");
        }
    }
    
    public static void main(String[] args) {
        InnerClass.A a = new InnerClass.A();
        InnerClass.B b = new InnerClass.B();
    }
}

ผลการทำงาน
A
B

ไม่มีความคิดเห็น:

แสดงความคิดเห็น