องค์ประกอบและการรวม

คลาสและวัตถุสามารถเกี่ยวข้องกันได้ การสืบทอดอธิบายถึงความสัมพันธ์แบบ "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ความสัมพันธ์ระหว่างชั้นเรียน  การสืบทอด องค์ประกอบ และการรวม - 4