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

คอนสตรัคเตอร์ใน Java มีกี่ประเภท?


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

คอนสตรัคเตอร์มีสองประเภทคือคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์และคอนสตรัคเตอร์แบบไม่มีอาร์กิวเมนต์

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

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

ตัวอย่าง

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