คอนสตรัคเตอร์คล้ายกับเมธอดและถูกเรียกใช้ในเวลาที่สร้างอ็อบเจ็กต์ของคลาส โดยทั่วไปจะใช้เพื่อเริ่มต้นตัวแปรอินสแตนซ์ของคลาส ตัวสร้างมีชื่อเดียวกับคลาสและไม่มีประเภทส่งคืน
คอนสตรัคเตอร์มีสองประเภทคือคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์และคอนสตรัคเตอร์แบบไม่มีอาร์กิวเมนต์
ตัวสร้างพารามิเตอร์
ตัวสร้างพารามิเตอร์ยอมรับพารามิเตอร์ซึ่งคุณสามารถเริ่มต้นตัวแปรอินสแตนซ์ได้ เมื่อใช้ตัวสร้างพารามิเตอร์ คุณสามารถเริ่มต้นตัวแปรคลาสแบบไดนามิกในขณะที่สร้างอินสแตนซ์ของคลาสด้วยค่าที่แตกต่างกัน
ตัวอย่าง
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