"สวัสดี Amigo! ตอนนี้ฉันจะบอกคุณเกี่ยวกับวิธีการสร้างวัตถุ"
"มันซับซ้อนอะไรขนาดนั้น ลุงริชิ เขียนชื่อคลาสใหม่ ระบุตัวสร้างที่ถูกต้อง เสร็จแล้ว!"
"นั่นก็จริง แต่จะเกิดอะไรขึ้นภายในวัตถุเมื่อคุณทำเช่นนั้น"
"เกิดอะไรขึ้น?"
"นี่คือสิ่งที่เกิดขึ้น: วัตถุถูกสร้างขึ้นในหลายขั้นตอน"
1) ขั้นแรก หน่วยความจำจะถูกจัดสรรให้กับตัวแปรสมาชิกของคลาสทั้งหมด
2) จากนั้นคลาสพื้นฐานจะเริ่มต้น
3) จากนั้นตัวแปรทั้งหมดจะถูกกำหนดค่าหากมีการระบุ
4) ในที่สุด ตัวสร้างจะถูกเรียก
"มันดูไม่ยากมาก เริ่มจากตัวแปร แล้วจึงสร้างคอนสตรัคเตอร์"
"มาดูวิธีการทำงานในตัวอย่างที่มีสองคลาส:"
รหัส | คำอธิบาย |
---|---|
|
ประกาศสองคลาส: สัตว์เลี้ยง(สัตว์เลี้ยง) และ แมว(แมว)
ในคลาส Cat เราจะเห็นการเรียกใช้ คอน สตรัคเตอร์ของคลาสฐาน อย่างชัดเจน นี่คือสิ่งที่เกิดขึ้นหลังจากจัดสรรหน่วยความจำแล้ว: จากนั้นคลาส Cat จะเริ่มเริ่มต้น |
|
“สับสนนิดหน่อย ทำไมมันซับซ้อนจัง”
"จริง ๆ แล้วไม่ใช่เรื่องยากหากคุณรู้ว่าเกิดอะไรขึ้น:"
ถ้าคลาสไม่มีตัวสร้าง ตัวสร้างจะถูกสร้างขึ้นโดยอัตโนมัติ
ตัวสร้างเริ่มต้น | |
---|---|
|
|
หากคุณไม่เรียกใช้ตัวสร้างคลาสพื้นฐาน ระบบจะเรียกใช้โดยอัตโนมัติ
การเรียกคอนสตรัคเตอร์ของคลาสพื้นฐาน | |
---|---|
|
|
|
|
ตัวแปรสมาชิกจะเริ่มต้นในตัวสร้าง
การเริ่มต้นของตัวแปรสมาชิก | |
---|---|
|
|
เกิดอะไรขึ้นจริงๆ | |
---|---|
|
|
"ตอนนี้มันชัดเจนมากขึ้น: ขั้นแรกเป็นคลาสพื้นฐาน จากนั้นตัวแปรนอกตัวสร้าง จากนั้นจึงตามด้วยรหัสตัวสร้าง"
"ทำได้ดีมาก Amigo! แค่นั้นแหละ!"
GO TO FULL VERSION