Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะยกตัวอย่างคลาสภายในของสมาชิกใน Java ได้อย่างไร?


คลาสที่ประกาศภายในคลาสแต่ภายนอกเมธอดเรียกว่า สมาชิกภายในคลาส .

เราสามารถยกตัวอย่างสมาชิกชั้นในได้สองวิธี

  • เรียกใช้ภายในคลาส
  • เรียกนอกชั้นเรียน

กฎสำหรับชั้นใน

  • ชั้นนอก (คลาสที่มีชั้นใน) สามารถยกตัวอย่างวัตถุของคลาสภายในได้มากเท่าที่ต้องการ ภายในโค้ดของมัน
  • หากคลาสชั้นในเป็นคลาสสาธารณะและคลาสที่บรรจุอยู่ด้วย โค้ดในคลาสอื่นที่ไม่เกี่ยวข้องสามารถสร้างอินสแตนซ์ของคลาสภายในได้เช่นกัน
  • ไม่มีการสร้างอ็อบเจ็กต์คลาสภายในโดยอัตโนมัติด้วยอ็อบเจ็กต์คลาสภายนอก
  • หากคลาสภายในเป็นแบบสแตติก คลาสภายในแบบสแตติกสามารถสร้างอินสแตนซ์ได้โดยไม่ต้องใช้อินสแตนซ์คลาสภายนอก มิฉะนั้น วัตถุคลาสภายในจะต้องเชื่อมโยงกับอินสแตนซ์ของคลาสภายนอก
  • ชั้นนอกเรียกได้แม้กระทั่งเมธอดส่วนตัวของชั้นใน

สมาชิกภายในคลาสที่เรียกใช้ภายในคลาส

ในตัวอย่างด้านล่าง เรากำลังเรียกใช้เมธอดของสมาชิกภายในคลาสจากเมธอด display() ของ OuterClass

ตัวอย่าง

public class OuterClass {
   private int value = 20;
      class InnerClass {
         void show() {
            System.out.println("Value is: " + value);
      }
   }
   void display() {
      InnerClass ic = new InnerClass();
      ic.show();
   }
   public static void main(String args[]){
      OuterClass oc = new OuterClass();
      oc.display();
   }
}
Value is: 20


สมาชิกภายในคลาสที่เรียกใช้นอกคลาส

ในตัวอย่างด้านล่าง เรากำลังเรียกใช้เมธอด show() ของ InnerClass จากภายนอก OuterClass เช่น คลาสทดสอบ

ตัวอย่าง

class OuterClass {
   private int value = 20;
      class InnerClass {
         void show() {
            System.out.println("Value is: "+ value);
      }
   }
}
public class Test {
   public static void main(String args[]) {
      OuterClass obj = new OuterClass();
      OuterClass.InnerClass in = obj.new InnerClass();
      in.show();
   }
}

ผลลัพธ์

Value is: 20