Java - Bộ tạo

Một hàm tạo khởi tạo một đối tượng khi nó được tạo. Nó có cùng tên với lớp của nó và tương tự về mặt cú pháp với một phương thức. Tuy nhiên, các hàm tạo không có kiểu trả về rõ ràng.

Thông thường, bạn sẽ sử dụng một hàm tạo để cung cấp các giá trị ban đầu cho các biến cá thể được xác định bởi lớp hoặc để thực hiện bất kỳ thủ tục khởi động nào khác được yêu cầu để tạo một đối tượng được hình thành đầy đủ.

Tất cả các lớp đều có các hàm tạo, cho dù bạn có xác định một hay không, bởi vì Java tự động cung cấp một hàm tạo mặc định khởi tạo tất cả các biến thành viên bằng 0. Tuy nhiên, khi bạn xác định hàm tạo của riêng mình, hàm tạo mặc định sẽ không còn được sử dụng nữa.

Cú pháp

Sau đây là cú pháp của một hàm tạo:

class ClassName {
   ClassName() {
   }
}

Java cho phép hai loại hàm tạo cụ thể là:

  • Không có trình tạo đối số
  • Trình xây dựng tham số

Không có trình tạo đối số

Vì tên chỉ định các hàm tạo không đối số của Java không chấp nhận bất kỳ tham số nào, thay vào đó, sử dụng các hàm tạo này, các biến cá thể của một phương thức sẽ được khởi tạo với các giá trị cố định cho tất cả các đối tượng.

Thí dụ

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

Bạn sẽ gọi hàm tạo để khởi tạo các đối tượng như sau

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

Điều này sẽ tạo ra kết quả sau

100 100

Trình xây dựng tham số

Thông thường, bạn sẽ cần một hàm tạo chấp nhận một hoặc nhiều tham số. Các tham số được thêm vào một phương thức khởi tạo giống như cách chúng được thêm vào một phương thức, chỉ cần khai báo chúng bên trong dấu ngoặc đơn sau tên của phương thức khởi tạo.

Thí dụ

Đây là một ví dụ đơn giản sử dụng một hàm tạo:

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

Bạn sẽ gọi hàm tạo để khởi tạo các đối tượng như sau:

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

Điều này sẽ tạo ra kết quả sau:

10 20