ตัวสร้างเริ่มต้น
- ตัวสร้างเริ่มต้นคือตัวสร้างอาร์กิวเมนต์ 0 ซึ่งมีการเรียกที่ไม่มีอาร์กิวเมนต์ไปยังตัวสร้าง super class
- การกำหนดค่าเริ่มต้นให้กับวัตถุที่สร้างขึ้นใหม่เป็นความรับผิดชอบหลักของตัวสร้างเริ่มต้น
- คอมไพเลอร์เขียนคอนสตรัคเตอร์เริ่มต้นในโค้ดก็ต่อเมื่อโปรแกรมไม่ได้เขียนคอนสตรัคเตอร์ใดๆ ในคลาส
- ตัวแก้ไขการเข้าถึงของตัวสร้างเริ่มต้นจะเหมือนกับตัวแก้ไขคลาสเสมอ แต่กฎนี้ใช้ได้กับ "สาธารณะ" เท่านั้น และ “ค่าเริ่มต้น” ตัวดัดแปลง
คอมไพเลอร์จะเพิ่มคอนสตรัคเตอร์เริ่มต้นเมื่อใด
- คอมไพเลอร์จะเพิ่มคอนสตรัคเตอร์เริ่มต้นให้กับโค้ดก็ต่อเมื่อโปรแกรมเมอร์ไม่ได้เขียนคอนสตรัคเตอร์ในโค้ด
- หากโปรแกรมเมอร์เขียนคอนสตรัคเตอร์ในโค้ด คอมไพเลอร์จะไม่เพิ่มคอนสตรัคเตอร์ใดๆ
- ตัวสร้างเริ่มต้นทุกตัวเป็นตัวสร้างอาร์กิวเมนต์ 0 แต่ตัวสร้างอาร์กิวเมนต์ทุก 0 ไม่ใช่ตัวสร้างเริ่มต้น
ตัวสร้างแบบกำหนดพารามิเตอร์
- ตัวสร้างพารามิเตอร์คือตัวสร้างที่มี จำนวนอาร์กิวเมนต์เฉพาะ ที่จะผ่าน
- วัตถุประสงค์ของคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์คือการกำหนดค่าเฉพาะที่ผู้ใช้ต้องการให้กับตัวแปรอินสแตนซ์ของออบเจกต์ต่างๆ
- ตัวสร้างพารามิเตอร์ถูกเขียนขึ้นอย่างชัดเจนโดยโปรแกรมเมอร์
- ตัวแก้ไขการเข้าถึงของคอนสตรัคเตอร์เริ่มต้นจะเหมือนกับตัวแก้ไขคลาสเสมอ แต่กฎนี้ใช้ได้กับ "สาธารณะ" เท่านั้น และ “ค่าเริ่มต้น” ตัวดัดแปลง
ตัวอย่าง
public class Student {
int roll_no;
String stu_name;
Student(int i, String n) { // Parameterized constructor
roll_no = i;
stu_name = n;
}
void display() {
System.out.println(roll_no+" "+stu_name);
}
public static void main(String args[]) {
Student s1 = new Student(1,"Adithya");
Student s2 = new Student(2,"Jai");
s1.display();
s2.display();
}
} ในโปรแกรมข้างต้น โปรแกรมเมอร์กำหนดคอนสตรัคเตอร์หนึ่งตัวที่มี 2 พารามิเตอร์ ตอนนี้คอมไพเลอร์ไม่ได้เพิ่มคอนสตรัคเตอร์เริ่มต้นให้กับโค้ด และโปรแกรมเมอร์ก็ไม่ได้เขียนคอนสตรัคเตอร์อาร์กิวเมนต์ 0 ใดๆ
ผลลัพธ์
1 Adithya 2 Jai