Computer >> Máy Tính >  >> Lập trình >> Java

Có bao nhiêu loại hàm tạo trong Java?

Một hàm tạo tương tự như phương thức và nó được gọi tại thời điểm tạo một đối tượng của lớp, nó thường được sử dụng để khởi tạo các biến thể hiện của một lớp. Các hàm tạo có cùng tên với lớp của chúng và không có kiểu trả về.

Có hai loại hàm tạo là hàm tạo tham số hóa và hàm tạo không đối số.

Các hàm tạo được tham số hóa

Một phương thức khởi tạo được tham số hóa chấp nhận các tham số mà bạn có thể khởi tạo các biến cá thể. Sử dụng hàm tạo được tham số hóa, bạn có thể khởi tạo động các biến lớp tại thời điểm khởi tạo lớp với các giá trị riêng biệt.

Ví dụ

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);

   }
}

Đầu ra

Enter an integer value:
1024
Enter a string value:
test
Enter a floating point value:
11.2
1024
test
11.2

Hàm tạo không đối số

Một phương thức khởi tạo no-arg không chấp nhận bất kỳ tham số nào, nó khởi tạo các biến lớp với các giá trị mặc định tương ứng của chúng (tức là null cho các đối tượng, 0,0 cho float và double, false cho Boolean, 0 cho byte, short, int và long).

Ví dụ

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);
   }
}

Đầu ra

100
test
125.33