Constructor – toán tử tạo lập
Constructor:
- là một phương thức đặc biệt (không có hoặc có nhiều tham số)
- không có giá trị trả về và có tên trùng với tên lớp
- đặt các giá trị khởi tạo cho các đối tượng
- khi một đối tượng được tạo, dùng với toán tử new
- Có thể có nhiều hơn một constructor
Trường hợp không có constructor: trình biên dịch sẽ cung cấp constructor mặc định (không làm gì cả, null, false,0) cho lớp đó.
Khai báo constructor
[<thuộc tính>] <tên lớp> (<ds tham biến>){
// Nội dung cần tạo lập
}
[<thuộc tính>]: public, protected, private, default.
Constructor
Class without constructor (Không )
class VdConstructor {
private int x,y;
public static void main(String[] args) {
VdConstructor So = new VdConstructor();
So.x=5;So.y=10;
System.out.println(So.x);
System.out.println(So.y);
}
}
Class with constructor(dùng )
class VdConstructor {
private int x,y;
VdConstructor(){
x=5; y=10;
}
public static void main(String[] args) {
VdConstructor So = new VdConstructor();
System.out.println(So.x);
System.out.println(So.y);
}
}
Nhiều Constructor
Thừa kế constructor
Constructor không thể thừa kế từ lớp cha như các loại phương thức khác
Cách gọi constructor:
Không có lời gọi tường minh đến Constructor của lớp cha tại lớp con:
trình biên dịch sẽ tự động chèn lời gọi tới Constructor mặc nhiên (implicity) hoặc Constructor không tham số (explicity) của lớp cha trước khi thực thi đoạn code khác trong Constructor lớp con
Có gọi tường minh constructor của lớp cha bằng cách sử dụng từ khoá super trong phần đặc tả constructor của lớp dẫn xuất
Chuỗi constructor
Thể hiện của lớp dẫn xuất luôn gọi constructor của lớp cơ sở trước rồi mới đến constructor của lớp dẫn xuất
Các nguyên tắc của Constructor
Constructor mặc nhiên (default constructor) sẽ tự động sinh ra bởi trình biên dịch nếu lớp không khai báo Constructor.
Ex: Parent()
Ex ?: Parent() default