ตัวสร้างเริ่มต้น
- ตัวสร้างเริ่มต้นคือตัวสร้างอาร์กิวเมนต์ 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