คอนสตรัคเตอร์คล้ายกับเมธอดและถูกเรียกใช้ในเวลาที่สร้างอ็อบเจ็กต์ของคลาส โดยทั่วไปจะใช้เพื่อเริ่มต้นตัวแปรอินสแตนซ์ของคลาส ตัวสร้างมีชื่อเดียวกับคลาสและไม่มีประเภทส่งคืน
คอนสตรัคเตอร์มีสองประเภทคือคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์และคอนสตรัคเตอร์แบบไม่มีอาร์กิวเมนต์
ตัวสร้างพารามิเตอร์
ตัวสร้างพารามิเตอร์ยอมรับพารามิเตอร์ซึ่งคุณสามารถเริ่มต้นตัวแปรอินสแตนซ์ได้ เมื่อใช้ตัวสร้างพารามิเตอร์ คุณสามารถเริ่มต้นตัวแปรคลาสแบบไดนามิกในขณะที่สร้างอินสแตนซ์ของคลาสด้วยค่าที่แตกต่างกัน
ตัวอย่าง
import java.util.Scanner; public class Test { int num; String data; float flt; Test(int num, String data, float flt){ this.num = num; this.data = data; this.flt = flt; } public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.println("Enter an integer value: "); int num = sc.nextInt(); System.out.println("Enter a string value: "); String data = sc.next(); System.out.println("Enter a floating point value: "); float flt = sc.nextFloat(); Test obj = new Test(num, data, flt); System.out.println(obj.num); System.out.println(obj.data); System.out.println(obj.flt); } }
ผลลัพธ์
Enter an integer value: 1024 Enter a string value: test Enter a floating point value: 11.2 1024 test 11.2
คอนสตรัคเตอร์แบบไม่มีอาร์ก
คอนสตรัคเตอร์แบบไม่มีอาร์กิวเมนต์ไม่ยอมรับพารามิเตอร์ใด ๆ มันสร้างอินสแตนซ์ของตัวแปรคลาสด้วยค่าเริ่มต้นที่เกี่ยวข้อง (เช่น null สำหรับอ็อบเจกต์ 0.0 สำหรับทุ่นและสองเท่า เท็จสำหรับบูลีน 0 สำหรับไบต์ สั้น int และยาว)
ตัวอย่าง
public class Test { int num; String data; float flt; Test(){ this.num = 100; this.data = "test"; this.flt = 125.33f; } public static void main(String args[]){ Test obj = new Test(); System.out.println(obj.num); System.out.println(obj.data); System.out.println(obj.flt); } }
ผลลัพธ์
100 test 125.33