องค์ประกอบและการรวม
คลาสและวัตถุสามารถเกี่ยวข้องกันได้ การสืบทอดอธิบายถึงความสัมพันธ์แบบ "IS A" สิงโตเป็นสัตว์ ความสัมพันธ์นี้แสดงได้ง่ายโดยใช้การสืบทอด ซึ่ง
Animal
จะเป็นคลาสพาเรนต์และ
Lion
จะเป็นคลาสย่อย แต่ไม่ใช่ว่าทุกความสัมพันธ์ในโลกจะได้รับการอธิบายอย่างถูกต้องเช่นนี้ ตัวอย่างเช่น แป้นพิมพ์มีความสัมพันธ์กับคอมพิวเตอร์อย่างแน่นอน แต่
ไม่ใช่คอมพิวเตอร์ มือมีความสัมพันธ์กับบุคคล แต่ไม่ใช่บุคคล กรณีเหล่านี้แสดงถึงความสัมพันธ์ประเภทอื่น ไม่ใช่ "IS A" แต่เป็น "HAS A" มือไม่ใช่คน แต่คนมีมือ แป้นพิมพ์ไม่ใช่คอมพิวเตอร์ แต่คอมพิวเตอร์มีแป้นพิมพ์ "มี"
. ความแตกต่างระหว่างแนวคิดเหล่านี้อยู่ที่ "ความเข้มงวด" ของความสัมพันธ์ ลองยกตัวอย่างง่ายๆ: เรามีไฟล์
Car
. รถทุกคันมีเครื่องยนต์ อีกทั้งรถทุกคันสามารถบรรทุกผู้โดยสารได้ อะไรคือความแตกต่างพื้นฐานระหว่างฟิลด์
Engine engine
และ
Passenger[] passengers
ฟิลด์? ถ้าผู้โดยสาร
A
นั่งอยู่ในรถไม่ได้หมายความว่าผู้โดยสารคนนั้น
B
จะ
C
อยู่ในรถด้วยไม่ได้ รถยนต์หนึ่งคันสามารถรองรับผู้โดยสารได้หลายคน ยิ่งไปกว่านั้น ผู้โดยสารทุกคนสามารถลงจากรถได้ แต่รถจะยังคงทำงานต่อไปได้อย่างราบรื่น ความสัมพันธ์ระหว่าง
Car
คลาสและ
Passenger[] passengers
อาร์เรย์นั้นเข้มงวดน้อยกว่า เรียกว่าการ
รวมตัว นี่คือบทความที่ดีเกี่ยวกับหัวข้อนี้:
ความสัมพันธ์ระหว่างคลาส (วัตถุ). เป็นอีกตัวอย่างที่ดีของการรวม สมมติว่าเรามี
Student
ชั้นเรียนที่เป็นตัวแทนของนักเรียน และชั้นเรียน
StudentGroup
ที่เป็นตัวแทนของกลุ่มนักเรียน นักเรียนสามารถเป็นสมาชิกชมรมฟิสิกส์ แฟนคลับนักศึกษาของ Star Wars หรือชมรมตลก
องค์ประกอบเป็นประเภทความสัมพันธ์ที่เข้มงวด เมื่อใช้การจัดองค์ประกอบ วัตถุจะมีอีกวัตถุหนึ่ง แต่ไม่สามารถอยู่ในวัตถุประเภทเดียวกันได้อีก ตัวอย่างที่ง่ายที่สุดคือเครื่องยนต์ของรถยนต์ ถ้ารถมีเครื่องยนต์ เครื่องยนต์นั้นจะเป็นของรถคันอื่นไม่ได้ อย่างที่คุณเห็น ความสัมพันธ์นั้นเข้มงวดกว่าความสัมพันธ์ของ
Car
และ
Passengers
GO TO FULL VERSION