บ่อยครั้ง เพื่อหลีกเลี่ยงการเขียนโค้ดเริ่มต้นที่ซ้ำกัน จำเป็นต้องเรียกโค้ดของตัวสร้างตัวหนึ่งจากอีกตัวหนึ่ง
นี่คือตัวอย่างวิธีการดำเนินการนี้:
public class SomeClass {
int a;
int b;
int c;
public SomeClass(int a, int b){
this.a = a;
this.b = b;
}
public SomeClass(int a, int b, int c){
// Вызов конструктора с двумя параметрами.
this(a, b);
this.c = c;
}
public void show(){
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
อย่างที่คุณเห็น สำหรับสิ่งนี้ เราใช้คำหลักthis
หลังจากนั้นเราจะระบุพารามิเตอร์สำหรับตัวสร้างที่เกี่ยวข้องในวงเล็บ (โดยมีพารามิเตอร์สองตัวในกรณีนี้) คุณสามารถเรียก Constructor ตัวหนึ่งจากตัวอื่นในคลาสเดียวกันหรือใน Superclass โดยมีข้อจำกัดดังต่อไปนี้:
- ตัวสร้างที่จะเรียกจะต้องอยู่ในบรรทัดแรกของโค้ดในตัวสร้างการเรียก
- ตัวสร้างที่ซ้อนกันไม่สามารถมีการอ้างอิงที่ชัดเจนหรือโดยนัยถึง "สิ่งนี้" จึงไม่สามารถเข้าชั้นเรียนชั้นในได้
GO TO FULL VERSION