[LTM] Chương 4.6 : Constructor

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