Java - ตัวสร้าง

ตัวสร้างเริ่มต้นอ็อบเจ็กต์เมื่อสร้างขึ้น มีชื่อเดียวกับคลาสและมีลักษณะทางไวยากรณ์คล้ายกับวิธีการ อย่างไรก็ตามคอนสตรัคเตอร์ไม่มีประเภทการส่งคืนที่ชัดเจน

โดยทั่วไปคุณจะใช้ตัวสร้างเพื่อกำหนดค่าเริ่มต้นให้กับตัวแปรอินสแตนซ์ที่กำหนดโดยคลาสหรือเพื่อดำเนินการขั้นตอนการเริ่มต้นอื่น ๆ ที่จำเป็นในการสร้างอ็อบเจ็กต์ที่มีรูปแบบสมบูรณ์

คลาสทั้งหมดมีคอนสตรัคเตอร์ไม่ว่าคุณจะกำหนดหรือไม่ก็ตามเนื่องจาก Java จัดเตรียมคอนสตรัคเตอร์เริ่มต้นโดยอัตโนมัติซึ่งเริ่มต้นตัวแปรสมาชิกทั้งหมดเป็นศูนย์ อย่างไรก็ตามเมื่อคุณกำหนดตัวสร้างของคุณเองแล้วตัวสร้างเริ่มต้นจะไม่ถูกใช้อีกต่อไป

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของตัวสร้าง -

class ClassName {
   ClassName() {
   }
}

Java อนุญาตให้มีตัวสร้างสองประเภทคือ -

  • ไม่มีอาร์กิวเมนต์ Constructor
  • ตัวสร้างพารามิเตอร์

ไม่มีอาร์กิวเมนต์ Constructor

เนื่องจากชื่อระบุตัวสร้างอาร์กิวเมนต์ของ Java จึงไม่ยอมรับพารามิเตอร์ใด ๆ แทนการใช้ตัวสร้างเหล่านี้ตัวแปรอินสแตนซ์ของวิธีการจะเริ่มต้นด้วยค่าคงที่สำหรับอ็อบเจ็กต์ทั้งหมด

ตัวอย่าง

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

คุณจะเรียกตัวสร้างเพื่อเตรียมใช้งานวัตถุดังต่อไปนี้

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้

100 100

ตัวสร้างพารามิเตอร์

บ่อยที่สุดคุณจะต้องมีตัวสร้างที่ยอมรับพารามิเตอร์อย่างน้อยหนึ่งตัว พารามิเตอร์จะถูกเพิ่มให้กับตัวสร้างในลักษณะเดียวกับที่เพิ่มเข้าไปในเมธอดเพียงแค่ประกาศไว้ในวงเล็บหลังชื่อตัวสร้าง

ตัวอย่าง

นี่คือตัวอย่างง่ายๆที่ใช้ตัวสร้าง -

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

คุณจะเรียกตัวสร้างเพื่อเริ่มต้นวัตถุดังต่อไปนี้ -

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

10 20