Khai báo hàm khởi tạo trong Java – Constructor Declarations

Bài viết được sự cho phép của tác giả Trần Hữu Cương

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

Tìm việc làm Java cho sinh viên ít kinh nghiệm

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…

Bài viết gốc được đăng tải tại stackjava.com

Có thể bạn quan tâm:

Xem thêm các việc làm java Developer hấp dẫn tại đây