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

อะไรคือความแตกต่างระหว่างตัวสร้างเริ่มต้นและตัวสร้างพารามิเตอร์ใน Java?


ตัวสร้างเริ่มต้น

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