การรวมใน Java

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.


การรวมเป็นประเภทของการเชื่อมโยงระหว่างคลาสที่สามารถดำเนินการได้ในภาษาการเขียนโปรแกรมเชิงวัตถุต่างๆ เช่น Java เป็นกระบวนการที่ช่วยให้สามารถนำโค้ดกลับมาใช้ใหม่ได้อย่างรวดเร็วและมีประสิทธิภาพ ทำให้เขียนโปรแกรมได้ง่ายขึ้นและทำงานได้อย่างมีประสิทธิภาพมากขึ้น

โดยทั่วไปแล้ว การรวมกำลังอ้างอิงถึงคลาสภายในคลาสอื่น สิ่งนี้สร้างสิ่งที่เรียกว่าความสัมพันธ์ HAS-A ระหว่างคลาสที่มีและคลาสที่มี ความสัมพันธ์เหล่านี้มีลักษณะเป็นทิศทางเดียวเนื่องจากเป็นนัยว่าหนึ่งในคลาสประกอบด้วยอีกคลาสหนึ่ง สิ่งนี้จะป้องกันไม่ให้สิ่งที่ตรงกันข้ามเกิดขึ้น

ตัวอย่างเช่น เราสามารถพูดได้ว่าบริษัทหนึ่ง ซึ่งมองได้จากมุมมองของการเขียนโปรแกรมว่าเป็นคลาสวัตถุ มีพนักงานอยู่กลุ่มหนึ่ง สิ่งเหล่านี้สามารถถูกมองว่าเป็นวัตถุที่มีคุณสมบัติของตนเอง ในกรณีนี้ คลาสที่มีคือบริษัท ในขณะที่คลาสที่มีคือพนักงาน ความสัมพันธ์นี้สมเหตุสมผลในทิศทางนี้เท่านั้น นั่นคือจากบริษัทถึงพนักงาน ความสัมพันธ์ในทิศทางตรงกันข้ามนั้นไม่สมเหตุสมผลเพราะมันเหมือนกับการบอกว่าพนักงานมี บริษัท ความจริงที่ว่าสิ่งนี้ไม่สมเหตุสมผลแสดงว่ามันเป็นความสัมพันธ์แบบทางเดียว

การรวมในแผนภาพชั้นเรียน

ใน Unified Modeling Language (UML) ซึ่งเป็นภาษาภาพสากลประเภทหนึ่งที่สร้างขึ้นสำหรับการออกแบบระบบซอฟต์แวร์ที่ซับซ้อน คลาสไดอะแกรมจะถูกใช้เพื่ออธิบายโครงสร้างและลักษณะของระบบ ในไดอะแกรมเหล่านี้แต่ละคลาสและความสัมพันธ์ระหว่างคลาสกับคลาสอื่นๆ จะแสดงด้วยรูปทรงเรขาคณิต ในกรณีของการรวมตัว ความสัมพันธ์นี้จะแสดงด้วยเพชรกลวงที่ด้านข้างของคลาสที่บรรจุ ซึ่งเชื่อมต่อกันด้วยส่วนของเส้นตรงไปยังคลาสที่บรรจุ ตัวอย่างเช่น:

การรวมใน Java

นี่คือความสัมพันธ์แบบรวมที่ระบุว่าคลาส Well มีคลาส Duck

การรวมนำไปใช้ใน Java อย่างไร

การใช้การรวมใน Java นั้นค่อนข้างง่าย เป็นเพียงเรื่องของการสร้างสองคลาสแล้วอ้างอิงคลาสแรกภายในคลาสที่สอง

นอกเหนือจากการสร้างความสัมพันธ์ “มี” หรือ “ต้อง” แล้ว การรวม Java ยังแสดงลักษณะความสัมพันธ์ที่อ่อนแอระหว่างวัตถุคอนเทนเนอร์และเนื้อหา ซึ่งหมายความว่าการทำลายสิ่งหนึ่งไม่ได้หมายความถึงการทำลายสิ่งอื่น เพื่อทำความเข้าใจความสัมพันธ์ประเภทนี้ ความสัมพันธ์ระหว่างครูกับนักเรียนสามารถเป็นตัวอย่างได้ ในกรณีนี้การหายตัวไปหรือการตายของครูไม่ได้ส่งผลให้นักเรียนของเขาหายไปหรือเสียชีวิต

กรณีตรงข้ามจะเป็นความสัมพันธ์ระหว่างมนุษย์กับหัวใจของเขา ไม่ต้องสงสัยเลยว่าหัวใจมีอยู่ในตัวมนุษย์ แต่ความสัมพันธ์นี้แตกต่างจากการรวมตัว เนื่องจากในกรณีนี้ทั้งคู่ต้องพึ่งพาอาศัยกัน การทำลายมนุษย์ยังทำลายหัวใจด้วย เนื่องจากการทำงานนั้นต้องการสารอาหารและออกซิเจนที่ร่างกายจัดหาให้ ในทางกลับกัน การทำลายหัวใจก็ทำลายมนุษย์เช่นกัน เนื่องจากหากไม่มีหัวใจ เราก็ไม่สามารถมีชีวิตอยู่ได้ (ไม่รวมถึงการปลูกถ่ายหรือวิธีอื่น ๆ ในการช่วยชีวิตเทียม)

ตัวอย่างการรวม

รหัสต่อไปนี้แสดงตัวอย่างการใช้งานการรวมเป็นรูปแบบความสัมพันธ์ระหว่างสองคลาสโดยใช้ Java ตัวอย่างเป็นเรื่องเกี่ยวกับโปรแกรมที่ใช้ติดตามว่าพนักงานคนใดในบริษัทมีรถยนต์เป็นของตนเองและคนใดไม่มี ตลอดจนคนใดมีจักรยานและไม่มี

เนื่องจากเราต้องการสร้างความสัมพันธ์ที่ระบุว่าพนักงาน “มี” รถยนต์และ/หรือพนักงาน “มี” จักรยาน จึงเป็นความสัมพันธ์แบบรวมระหว่างชนชั้นที่พนักงานจะสังกัด (ซึ่งเราจะเรียกว่าพนักงาน ด้วยเหตุผลที่ชัดเจน) และอีกสองคลาสเพิ่มเติม คลาสหนึ่งสำหรับรถยนต์และอีกคลาสสำหรับจักรยาน

สิ่งแรกที่ต้องทำในกรณีเหล่านี้คือการสร้างคลาสที่เกี่ยวข้อง ในกรณีนี้ มีสามคลาส: คลาสหนึ่งสำหรับรถยนต์ หนึ่งคลาสสำหรับจักรยาน และอีกคลาสสำหรับพนักงาน รูปภาพต่อไปนี้แสดงโค้ดสำหรับสร้างคลาสเหล่านี้ ซึ่งมีชื่อว่า รถยนต์ จักรยาน และพนักงาน

การรวมใน Java

ในโค้ดข้างต้น คุณยังเห็นได้ว่าแต่ละคลาสมีแอตทริบิวต์บางอย่างที่เกี่ยวข้อง ในกรณีของรถจะมีลักษณะตามรุ่น สี และแผ่นป้ายทะเบียนที่เกี่ยวข้องกับรถทั้งหมด สิ่งเดียวกันนี้เกิดขึ้นกับจักรยานซึ่งเกี่ยวข้องกับหมายเลขป้ายทะเบียนและรุ่น

เมื่อเราดูคลาสพนักงาน เราสังเกตเห็นว่าคลาสนี้มีแอตทริบิวต์monbreempซึ่งแสดงถึงชื่อของพนักงาน และempidซึ่งแสดงถึงหมายเลขประจำตัวของพนักงาน จากนั้นจะอ้างอิงคลาสรถยนต์และจักรยาน สร้างความสัมพันธ์โดยรวมระหว่างคลาสเหล่านี้ ในที่สุด บันทึกของพนักงานจะถูกสร้างขึ้นพร้อมกับรถยนต์และจักรยานของเขา

โปรดทราบว่าในตัวอย่างนี้ การอ้างอิงคลาสรถยนต์และจักรยานยนต์ภายในคลาสพนักงานทำให้สามารถเข้าถึงแอตทริบิวต์จักรยานและรถยนต์จากภายในคลาสพนักงานได้

ผลลัพธ์ของโปรแกรมนี้จะเป็น:

________รายละเอียดพนักงาน________

ชื่อพนักงาน: Xavier

หมายเลขประจำตัวพนักงาน: 210921

________รายละเอียดรถพนักงาน________

รุ่นรถ: โคโรลล่า

สีรถ: เขียว

ป้ายทะเบียนรถ: XFZ-043

________รายละเอียดจักรยานของพนักงาน________

จักรยานรุ่น: MERIDA

เพลทจักรยาน: LAA-11B

อ้างอิง

-โฆษณา-

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados