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