Composition ใน Java พร้อมตัวอย่างคืออะไร
เผยแพร่แล้ว: 2022-11-19ความเก่งกาจของภาษาโปรแกรมจาวาช่วยให้โค้ดใช้ซ้ำได้ในขณะที่ลดความซ้ำซ้อนระหว่างคลาส Java อำนวยความสะดวกในการใช้รหัสซ้ำโดยการสร้างความสัมพันธ์ระหว่างคลาส และความสัมพันธ์เหล่านี้มีสองประเภท: การสืบทอดและการเชื่อมโยง ในขณะที่การสืบทอดช่วยให้เราใช้ความสัมพันธ์แบบ is-a และสร้างคลาสใหม่จากคลาสที่มีอยู่ การเชื่อมโยงหรือความสัมพันธ์แบบ has-a จะช่วยให้โค้ดกลับมาใช้ใหม่ได้
ความสัมพันธ์ has-a แบ่งออกเป็นสองประเภทเพิ่มเติม: การรวมและองค์ประกอบ ใน Java บทความนี้จะสำรวจแนวคิดการจัด องค์ประกอบใน Java และช่วยให้คุณเข้าใจพื้นฐานพร้อมตัวอย่าง
ภาพรวมของความสัมพันธ์ใน Java
ความสัมพันธ์ใน Java อ้างถึงวิธีต่างๆ ของคลาสที่เกี่ยวข้องกัน โดยทั่วไปมีความสัมพันธ์สองประเภทใน Java:
- เป็น-ความสัมพันธ์
- มีความสัมพันธ์
แหล่งที่มา
เป็นความสัมพันธ์ (มรดก)
คุณลักษณะการสืบทอดใน Java ช่วยให้เราใช้ความสัมพันธ์แบบ is-a ได้ ในกรณีนี้ คลาสหนึ่งสืบทอดคลาสอื่น ตัวอย่างเช่น ถ้าคลาส 'Flower' สืบทอดคลาสอื่น 'Lily' เราสามารถพูดได้ว่าคลาส 'Lily' มีความสัมพันธ์กับ 'Flower' นอกจากนี้ยังบอกเป็นนัยว่าลิลลี่เป็นดอกไม้
ตัวอย่าง: ดอกลิลลี่ 'เป็น' ดอกไม้ คอมพิวเตอร์ 'เป็น' อุปกรณ์ และอื่น ๆ
มีความสัมพันธ์ (สมาคม)
ความสัมพันธ์ has-a บ่งบอกว่าคลาสใช้อินสแตนซ์ของคลาสอื่น และความสัมพันธ์ดังกล่าวใน Java เรียกว่าการเชื่อมโยง ตัวอย่างเช่น ถ้าคลาส P มีการอ้างอิงคลาส Q อื่น แสดงว่า P สามารถเข้าถึงคุณสมบัติทั้งหมดของคลาส Q ได้
ตัวอย่าง: คอมพิวเตอร์ 'มี' โปรเซสเซอร์ ผึ้ง 'มี' เหล็กใน ฯลฯ
การเชื่อมโยงใน Java เป็นความสัมพันธ์ระหว่างสองคลาสที่ไม่ต่อเนื่องโดยใช้วัตถุ ความสัมพันธ์สามารถเป็นประเภทต่อไปนี้:
- หนึ่งต่อหลาย: หนึ่งวัตถุเชื่อมโยงกับหลายวัตถุ
- หนึ่งต่อหนึ่ง: วัตถุหนึ่งเชื่อมโยงกับวัตถุเดียว
- หลายต่อหลาย: หลายวัตถุเชื่อมโยงกับหลายวัตถุอื่น ๆ
- หลายต่อหนึ่ง: หลายวัตถุเชื่อมโยงกับวัตถุเดียว
การเชื่อมโยงมีสองประเภท: การรวมและองค์ประกอบ
องค์ประกอบในภาษาจาวา
องค์ประกอบในภาษาจาวา เป็นเทคนิคการออกแบบเพื่อใช้ความสัมพันธ์แบบ has-a ระหว่างคลาส ในการเชื่อมโยงนี้ คลาสหนึ่งมีอีกคลาสหนึ่ง ยิ่งกว่านั้น คลาสที่มีอยู่อาศัยคลาสที่มีและไม่สามารถดำรงอยู่อย่างอิสระ กล่าวอีกนัยหนึ่ง คลาสหนึ่งมีอีกคลาสที่มีฟังก์ชันการทำงานที่พึ่งพากัน
ตัวอย่างเช่น คลาส 'รถยนต์' ประกอบด้วยคลาส 'เครื่องยนต์' และ 'แบตเตอรี่' ดังนั้น 'รถยนต์' จึงมีความสัมพันธ์แบบ "has-ha" กับ 'เครื่องยนต์' และ 'แบตเตอรี่' และสองอย่างหลังไม่สามารถดำรงอยู่อย่างอิสระได้หากไม่มี 'รถยนต์'
ลองพิจารณาอีกตัวอย่างในชีวิตจริง ร่างกายมนุษย์มีไต และอวัยวะต่าง ๆ ไม่สามารถดำรงอยู่ได้หากไม่มีร่างกายมนุษย์ ดังนั้น หากเราคิดว่า 'มนุษย์' เป็นคลาสที่มีความสัมพันธ์กับคลาส 'ไต' ก็เป็น องค์ประกอบในตัวอย่าง Java เนื่องจากไตไม่สามารถดำรงอยู่อย่างเป็นอิสระได้หากไม่มีร่างกายมนุษย์
การสัมมนาผ่านเว็บการพัฒนาซอฟต์แวร์สุดพิเศษของ upGrad สำหรับคุณ -
ธุรกิจ SAAS – แตกต่างอย่างไร?
การใช้องค์ประกอบในตัวอย่าง Java
พิจารณาโปรแกรมต่อไปนี้ที่แสดงแนวคิดการจัด องค์ประกอบ ใน Java เราจะแบ่งออกเป็นขั้นตอนเพื่อความเข้าใจที่ดีขึ้น
ขั้นตอนที่ 1: ในขั้นตอนแรก เราจะสร้างคลาส 'รถยนต์' และประกาศและกำหนดเมธอดและสมาชิกข้อมูล
รถคลาส
{
// ประกาศสมาชิกข้อมูลและเมธอด
สีสตริงส่วนตัว
ความเร็ว int ส่วนตัว;
คุณสมบัติรถโมฆะสาธารณะ ()
{
System.out.println(“สีรถ= “+สี + ” ความเร็วสูงสุด= ” + ความเร็ว);
}
โมฆะสาธารณะ setColor (สีสตริง)
{
this.color = สี;
}
โมฆะสาธารณะ setspeed (ความเร็ว int)
{
this.speed = ความเร็ว;
}
}
ขั้นตอนที่ 2: ต่อไป เราจะสร้างคลาส 'Fiat' ที่ขยายคลาส 'รถยนต์' ข้างต้น คลาส 'Fiat' ใช้เมธอด start() ของคลาส FiatEngine ผ่านการจัดองค์ประกอบ หมายความว่าคลาส 'Fiat' 'has-a' FiatEngine Fiat เป็นรถยนต์ ดังนั้นจึงขยายจากคลาส 'รถยนต์'
คลาส Fiat ขยายรถยนต์
{
// สืบทอดคุณสมบัติทั้งหมดของคลาสรถยนต์
โมฆะสาธารณะ setStart()
{
FiatEngine e = FiatEngine ใหม่ ();
e.start();
}
}
ขั้นตอนที่ 3: ในขั้นตอนต่อไปของโปรแกรมสร้างองค์ประกอบ Java เราจะสร้างคลาส FiatEngine ซึ่งเราใช้วัตถุคลาสในคลาส 'Fiat' ข้างต้น
คลาส FiatEngine
{
โมฆะสาธารณะเริ่มต้น ()
{
System.out.println (“เครื่องยนต์เริ่มทำงานแล้ว”);
}
โมฆะสาธารณะ stop()
{
System.out.println("เครื่องยนต์หยุดทำงาน");
}
}
ขั้นตอนที่ 4: ในขั้นตอนสุดท้ายของโปรแกรม เราจะสร้างคลาส CompositionExample สร้างวัตถุของคลาส 'Fiat' และเริ่มต้น
ตัวอย่างคลาส Composition
{
โมฆะสาธารณะคงที่หลัก (String[] args)
{
เฟียต f = เฟียตใหม่ ();
f.setColor("สีดำ");
f.setspeed(175);
f.carFeatures();
h.setStart();
}
}
เอาท์พุต:
สีรถ= ดำ ความเร็วสูงสุด= 175
เครื่องยนต์เริ่มทำงานแล้ว
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโทเพื่อติดตามความก้าวหน้าในอาชีพของคุณอย่างรวดเร็ว
การรวมและองค์ประกอบใน Java
การ รวมและการจัดองค์ประกอบใน Java เป็นความสัมพันธ์แบบ has-a สองประเภท โดยทั้งสองประเภทมีความแตกต่างกันในแง่ของการพึ่งพาระหว่างคลาส ในการรวม คอนเทนเนอร์และคลาสอ้างอิงมีตัวตนที่เป็นอิสระ ในขณะที่คลาสอ้างอิงองค์ประกอบจะหยุดอยู่โดยไม่มีคลาสคอนเทนเนอร์ ดังนั้น คลาสอ้างอิงจึงขึ้นอยู่กับคลาสคอนเทนเนอร์ในการจัดองค์ประกอบ
นี่คือตัวอย่างในชีวิตจริงเพื่อทำความเข้าใจความแตกต่างระหว่าง การรวมและการเรียบเรียง ใน Java รถยนต์มีชิ้นส่วนต่างๆ เช่น เครื่องยนต์ เบรก แบตเตอรี่ ไฟหน้า เครื่องเล่นเพลง ฯลฯ แม้ว่ารถยนต์จะสามารถทำงานได้โดยไม่มีเครื่องเล่นเพลง แต่ก็ไม่สามารถวิ่งได้หากไม่มีชิ้นส่วนสำคัญอย่างเครื่องยนต์หรือแบตเตอรี่ ดังนั้น เราสามารถพูดได้ว่ารถยนต์และเครื่องเล่นเพลงมีความสัมพันธ์แบบรวมในขณะที่เครื่องยนต์และรถยนต์มีความสัมพันธ์ในการแต่งเพลง
การใช้องค์ประกอบใน Java มีประโยชน์อย่างไร
เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับแนวคิดการจัดองค์ประกอบใน Java แล้ว ต่อไปนี้คือภาพรวมของประโยชน์ของเทคนิคนี้:
- องค์ประกอบใน Java อำนวยความสะดวกในการใช้รหัสซ้ำ
- Composition ใน Java ช่วยให้เราควบคุมการมองเห็นของออบเจกต์อื่นๆ ในคลาสไคลเอ็นต์และนำสิ่งที่เราต้องการกลับมาใช้ใหม่ได้
- แม้ว่า Java จะไม่รองรับการสืบทอดหลายรายการ แต่เราสามารถแก้ไขได้โดยใช้องค์ประกอบ
- การจัดองค์ประกอบใน Java มีความยืดหยุ่นและช่วยให้เราเปลี่ยนออบเจกต์สมาชิกในขณะรันไทม์เพื่อปรับเปลี่ยนพฤติกรรมของโปรแกรม
- องค์ประกอบของ Java ช่วยให้สามารถทดสอบคลาสได้ดีขึ้น ซึ่งเป็นคุณลักษณะที่มีประโยชน์อย่างยิ่งในการพัฒนาโดยใช้การทดสอบ
- การออกแบบตามองค์ประกอบมีคลาสน้อยกว่า
หลักสูตรและบทความยอดนิยมเกี่ยวกับวิศวกรรมซอฟต์แวร์
โปรแกรมยอดนิยม | |||
โปรแกรม Executive PG ในการพัฒนาซอฟต์แวร์ - IIIT B | โปรแกรมใบรับรอง Blockchain - PURDUE | โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ - PURDUE | MSC ในวิทยาการคอมพิวเตอร์ - IIIT B |
บทความยอดนิยมอื่น ๆ | |||
เงินเดือนวิศวกรคลาวด์ในสหรัฐอเมริกา 2021-22 | เงินเดือนสถาปนิกโซลูชัน AWS ในสหรัฐอเมริกา | เงินเดือนนักพัฒนาแบ็กเอนด์ในสหรัฐอเมริกา | เงินเดือนนักพัฒนาส่วนหน้าในสหรัฐอเมริกา |
เงินเดือนนักพัฒนาเว็บในสหรัฐอเมริกา | คำถามสัมภาษณ์ Scrum Master ในปี 2022 | จะเริ่มอาชีพใน Cyber Security ในปี 2565 ได้อย่างไร | ตัวเลือกอาชีพในสหรัฐอเมริกาสำหรับนักศึกษาวิศวกรรม |
บทสรุป
Composition ใน Java เป็นเทคนิคที่ยอดเยี่ยมหากความสัมพันธ์ระหว่างคลาสเป็นแบบ has-a และคุณต้องการนำโค้ดกลับมาใช้ใหม่ โดยสรุป ต่อไปนี้เป็นประเด็นสำคัญที่คุณต้องจำเกี่ยวกับการจัดองค์ประกอบใน Java:
- องค์ประกอบใน Java แสดงถึงความสัมพันธ์แบบ has-a
- ในการจัดองค์ประกอบ คลาสหนึ่งมีอีกคลาสหนึ่ง และคลาสที่มีอยู่อาศัยคลาสที่มีและไม่สามารถดำรงอยู่อย่างอิสระ
- เอนทิตีทั้งสองในการเชื่อมโยงองค์ประกอบจะขึ้นอยู่กับกันและกัน
- เราสามารถบรรลุองค์ประกอบใน Java ผ่านตัวแปรอินสแตนซ์ที่อ้างถึงวัตถุอื่น
ยกระดับอาชีพของคุณด้วยโปรแกรม Executive PG ในการพัฒนาซอฟต์แวร์ของ upGrad
การพัฒนาซอฟต์แวร์เป็นหนึ่งในตัวเลือกอาชีพที่มีกำไรมากที่สุดสำหรับมืออาชีพรุ่นใหม่ หากคุณอยู่ในอุตสาหกรรมนี้อยู่แล้วหรือต้องการเริ่มต้น คุณต้องลงทะเบียนในโปรแกรม Executive PG ของ upGrad ในการพัฒนา ซอฟต์แวร์ โปรแกรมจะสอนทักษะที่เป็นที่ต้องการและ ภาษา และเครื่องมือใน การเขียนโค้ดที่มีค่าใช้จ่ายสูงสุด 10 รายการ คุณสามารถเลือกจากสี่ความเชี่ยวชาญพิเศษ ได้แก่ Blockchain Development, Full Stack Development, DevOps และ Cloud Backend Development
นอกเหนือจากการเรียนรู้ ภาษาโปรแกรมที่สร้าง รายได้สูงสุด แล้ว คุณยังสามารถทำงานในกรณีศึกษาและโครงการได้มากกว่า 30 รายการ คณาจารย์ระดับโลกเข้าร่วมการบรรยายสดและเซสชั่นออนไลน์สำหรับหลักสูตร มีบริการช่วยเหลือนักศึกษาตลอด 24 ชั่วโมง
สมัครตอนนี้ เพื่อเข้าเรียนในหลักสูตรอย่างเร็วที่สุด!
องค์ประกอบและการสืบทอดใน Java คืออะไร
องค์ประกอบและการสืบทอดใน Java เป็นสองเทคนิคการเขียนโปรแกรมเพื่อสร้างความสัมพันธ์ระหว่างวัตถุและคลาส องค์ประกอบแสดงถึงความสัมพันธ์กับคลาสหนึ่งที่มีคลาสอื่น ในทางกลับกัน การสืบทอดจะแสดงความสัมพันธ์แบบ is-a กับคลาสหนึ่งซึ่งได้รับคุณสมบัติและพฤติกรรมของอีกคลาสหนึ่ง
จุดประสงค์ของการจัดองค์ประกอบใน Java คืออะไร?
ส่วนประกอบใน Java ช่วยให้สามารถใช้โค้ดซ้ำได้และให้ความสามารถในการทดสอบคลาสที่ดีขึ้น แม้ว่า Java จะไม่สนับสนุนการสืบทอดหลายรายการ แต่การจัดองค์ประกอบมีวิธีดำเนินการดังกล่าว
องค์ประกอบเป็น OOP หรือไม่
องค์ประกอบเป็นแนวคิดพื้นฐานในการเขียนโปรแกรมเชิงวัตถุ มันอธิบายความสัมพันธ์แบบ has-a ที่คลาสหนึ่งอ้างอิงออบเจกต์ของคลาสอื่นอย่างน้อยหนึ่งรายการผ่านตัวแปรอินสแตนซ์