คุณสร้างการเชื่อมต่อระหว่างสองคลาสได้อย่างไรเมื่อคุณเขียนไฟล์ โปรแกรม Java เหรอ? มันง่ายมาก คุณสามารถใช้แนวคิดที่เรียกว่าการเชื่อมโยง ฟังดูน่าสนใจใช่มั้ย? ในบทความนี้เรามาดูการเชื่อมโยงใน ในรายละเอียด.
หัวข้อที่กล่าวถึงในบทความนี้ ได้แก่ :
สมาคมคืออะไร?
การเชื่อมโยงใน Java เป็นการเชื่อมต่อหรือความสัมพันธ์ระหว่างสองสิ่งที่แยกจากกัน ชั้นเรียน ที่ตั้งค่าผ่านไฟล์ วัตถุ . ความสัมพันธ์ของการเชื่อมโยงบ่งชี้ว่าวัตถุรู้จักกันอย่างไรและใช้ฟังก์ชันการทำงานของกันและกันอย่างไร อาจเป็นแบบตัวต่อตัวแบบหนึ่งต่อหลายแบบหลายต่อหนึ่งและแบบหลายต่อหลาย
- ตัวอย่างเช่น,บุคคลสามารถมีหนังสือเดินทางได้เพียงเล่มเดียว นั่นคือ“ หนึ่งต่อหนึ่ง ” ความสัมพันธ์.
- หากเราพูดถึงความสัมพันธ์ระหว่างธนาคารกับพนักงานธนาคารสามารถมีพนักงานจำนวนมากได้ดังนั้นจึงเป็น“ หนึ่งต่อหลายคน ” ความสัมพันธ์.
- ในทำนองเดียวกันทุกเมืองมีอยู่ในรัฐเดียว แต่รัฐสามารถมีได้หลายเมืองซึ่งเป็น ' หลายต่อหนึ่ง ” ความสัมพันธ์.
- สุดท้ายนี้ถ้าเราพูดถึงความสัมพันธ์ระหว่างครูและนักเรียนนักเรียนหลายคนสามารถเชื่อมโยงกับครูคนเดียวและนักเรียนคนเดียวสามารถเชื่อมโยงกับครูหลายคนได้ แต่ทั้งสองสามารถสร้างหรือลบได้โดยอิสระ มันคือ ' หลายต่อหลายคน ” ความสัมพันธ์.
มาทำความเข้าใจเกี่ยวกับการเชื่อมโยงด้วยตัวอย่าง
แพ็กเกจ MyPackage import java.util. * class CityClass {private String cityName public String getCityName () {return cityName} โมฆะสาธารณะ setCityName (String cityName) {this.cityName = cityName} @Override public String toString () คลาส {return cityName}} สถานะ {private String stateName List citys public String getStateName () {return stateName} public void setStateName (String stateName) {this.stateName = stateName} public List getCities () {return citys} public void setState (List citys) {this.citys = citys}} คลาสสาธารณะ AssociationExample {public static void main (String [] args) {State state = new State () state.setStateName ('California') CityClass city = new CityClass () city.setCityName ('Los Angeles') CityClass city2 = CityClass () city2.setCityName ใหม่ ('San Diago') รายการ empList = ArrayList ใหม่ () empList.add (เมือง) empList.add (city2) state.setState (empList) System.out.println (state.getCities () + 'คือเมืองในรัฐ' + state.getStateName ())}}
เอาท์พุต:
[ลอสแอนเจลิสซานดิอาโก] เป็นเมืองในรัฐแคลิฟอร์เนีย
ดังที่คุณเห็นในโปรแกรมตัวอย่างนี้มีสองคลาส ได้แก่ รัฐ และ เมือง. ทั้งสองคลาสที่แยกจากกันนี้เชื่อมโยงกันผ่าน วัตถุ . ยิ่งไปกว่านั้นทุกเมืองมีอยู่ในรัฐเดียว แต่รัฐสามารถมีได้หลายเมืองดังนั้นคำว่าความสัมพันธ์แบบ 'หลายต่อหนึ่ง' ที่สำคัญการเชื่อมโยงใน Java มีสองรูปแบบพิเศษ มาดูกันเลย
สองรูปแบบของการเชื่อมโยง
องค์ประกอบ และ การรวม เป็นสองรูปแบบพิเศษของการเชื่อมโยง ลองดูตัวอย่างด้วยความช่วยเหลือ
องค์ประกอบ
มันคือประเภท“ เป็นของ” ของสมาคม. หมายความว่าวัตถุชิ้นใดชิ้นหนึ่งเป็นโครงสร้างที่ใหญ่กว่าในเชิงตรรกะซึ่งมีอีกวัตถุหนึ่งอยู่ กล่าวอีกนัยหนึ่งก็คือเป็นส่วนหนึ่งหรือสมาชิกของวัตถุที่ใหญ่กว่า หรืออีกวิธีหนึ่งมักเรียกว่าไฟล์ ความสัมพันธ์แบบ“ has-a” (ตรงข้ามกับความสัมพันธ์“ is-a” ซึ่งก็คือ ).
สำหรับตัวอย่างเช่นอาคารมีห้องหรือกล่าวอีกนัยหนึ่งคือห้องเป็นของอาคาร องค์ประกอบ เป็นความสัมพันธ์แบบ“ มี -” ที่แข็งแกร่งเนื่องจากวัฏจักรชีวิตของวัตถุผูกติดกัน หมายความว่าถ้าเราทำลายเจ้าของวัตถุสมาชิกของมันก็จะถูกทำลายไปด้วย ตัวอย่างเช่นหากอาคารถูกทำลายห้องก็ถูกทำลายเช่นกันในตัวอย่างก่อนหน้าของเรา แต่โปรดทราบว่าไม่ได้หมายความว่าวัตถุที่บรรจุอยู่จะไม่สามารถดำรงอยู่ได้หากไม่มีส่วนใด ๆ ตัวอย่างเช่นหากเรารื้อห้องทั้งหมดในอาคารออกไปสิ่งนั้นจะยังคงอยู่
การแปลงประเภท c ++
การรวม
การรวมยังเป็นความสัมพันธ์แบบ 'มี -' แต่สิ่งที่แตกต่างจากองค์ประกอบก็คือวงจรชีวิตของวัตถุไม่ได้ผูกติดกัน ข ทั้งสองรายการสามารถอยู่รอดได้ทีละรายการ ซึ่งหมายความว่าการสิ้นสุดเอนทิตีหนึ่งจะไม่ส่งผลกระทบต่อเอนทิตีอื่น ทั้งสองสามารถดำรงอยู่โดยอิสระจากกันและกัน ดังนั้นจึงมักเรียกว่าสัปดาห์สมาคม
เรามาดูตัวอย่างของผู้เล่นและทีมกัน ผู้เล่นที่เป็นส่วนหนึ่งของทีมสามารถดำรงอยู่ได้แม้ว่าทีมจะหยุดอยู่เหตุผลหลักที่คุณต้องมี Aggregation คือ รักษาความสามารถในการใช้รหัสซ้ำ
เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับ Association in .
หากคุณพบบทความเกี่ยวกับ“ การเชื่อมโยงใน Java” นี้เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ 'Association in Java' และทีมงานของเรายินดีที่จะตอบ