Khai báo hàm khởi tạo trong Java – Constructor Declarations.
Constructor Declarations
Trong Java, các đối tượng được khởi tạo thông qua hàm khởi tạo (constructor). Mỗi lần bạn tạo mới một đối tượng sẽ có ít nhất một hàm khởi tạo được thực thi.
Mỗi class đều có một hàm khởi tạo, nếu bạn không khai báo thì complier sẽ tự động khai báo một hàm khởi tạo không tham số cho bạn.
Có rất nhiều nguyên tắc khác nhau liên quan đến hàm khởi tạo (sẽ tìm hiểu ở bài sau). Ở bài này chúng ta sẽ chỉ tập trung vào các nguyên tắc khai báo cơ bản.
Hàm khởi tạo cũng được coi như một hàm với kiểu dữ liệu trả về của hàm khởi tạo chính là một thể hiện của class chứa nó. Hàm khởi tạo có thể đi kèm với các access modifier
Ví dụ ta có class sau:
public class Person { private String name; private String address; }
Các hàm khởi tạo hợp lệ:
Person() { } public Person() { } protected Person() { } private Person() { } public Person(String name, String address) { this.name = name; this.address = address; } public Person(String name) { this.name = name; }
Các hàm khởi tạo không hợp lệ:
void Person() {} // đây là một method, không khải constructor static Person() {} // không thể đi kèm với từ khóa static final Person() {} // không thể đi kèm với từ khóa final abstract Person() {} // không thể đi kèm với từ khóa abstract
Một class có thể có nhiều hàm khởi tạo (tương tự như một class có thể có nhiều hàm cùng tên – tính đa hình) nhưng tham số đầu vào của các hàm khởi tạo phải khác nhau.
Khi bạn gọi lệnh new
thì đầu tiên nó sẽ chạy vào hàm khởi tạo của đối tượng rồi sau đấy mới chạy các khối static, method…
Khai báo hàm khởi tạo trong Java – Constructor Declarations stackjava.com
Xem thêm: https://stackjava.com/java-core
References: