"Xin chào, Amigo! Bây giờ tôi sẽ kể cho bạn nghe về cách đồ vật được tạo ra."
"Có gì phức tạp đâu chú Rishi? Chú viết new và tên lớp, chỉ ra hàm tạo chính xác là xong!"
"Đúng vậy. Nhưng điều gì xảy ra bên trong đối tượng khi bạn làm điều đó?"
"Chuyện gì xảy ra?"
"Đây là những gì sẽ xảy ra: Đối tượng được tạo trong một số giai đoạn."
1) Đầu tiên, bộ nhớ được phân bổ cho tất cả các biến thành viên của lớp.
2) Sau đó, lớp cơ sở được khởi tạo.
3) Sau đó, tất cả các biến được gán giá trị, nếu có được chỉ định.
4) Cuối cùng, hàm tạo được gọi.
"Có vẻ không khó lắm: đầu tiên là các biến, sau đó là hàm tạo."
"Hãy xem cách nó hoạt động trong một ví dụ với hai lớp:"
Mã số | Sự miêu tả |
---|---|
|
Khai báo hai lớp: Pet(thú cưng) và Cat(mèo).
Trong lớp Cat, chúng ta thấy một lệnh gọi rõ ràng đến hàm tạo của lớp cơ sở . Đây là những gì xảy ra sau khi bộ nhớ được cấp phát: Sau đó lớp Cat bắt đầu được khởi tạo. |
|
"Điều đó hơi khó hiểu. Tại sao nó lại phức tạp như vậy?"
"Thật ra không khó nếu bạn biết chuyện gì đang thực sự xảy ra:"
Nếu một lớp không có bất kỳ hàm tạo nào, một hàm tạo sẽ được tạo tự động.
Nhà xây dựng mặc định | |
---|---|
|
|
Nếu bạn không gọi hàm tạo của lớp cơ sở, nó sẽ được gọi tự động.
Gọi hàm tạo của lớp cơ sở | |
---|---|
|
|
|
|
Các biến thành viên được khởi tạo trong hàm tạo.
Khởi tạo các biến thành viên | |
---|---|
|
|
Điều gì thực sự xảy ra | |
---|---|
|
|
"Bây giờ nó rõ ràng hơn nhiều: đầu tiên là lớp cơ sở, sau đó là các biến bên ngoài hàm tạo, sau đó là mã hàm tạo."
"Làm tốt lắm, Amigo! Vậy đó!"
GO TO FULL VERSION