ทุกสิ่งที่คุณต้องรู้เกี่ยวกับมีความสัมพันธ์ใน Java



บทความนี้จะให้ความรู้โดยละเอียดและเข้าใจเกี่ยวกับ Has a relationship ใน java และการใช้งานที่หลากหลาย

มีความสัมพันธ์ใน และความสัมพันธ์เป็นสองคำที่สับสนที่สุด ในบทความนี้เราจะเน้นที่พารามิเตอร์ต่อไปนี้:

ตัวแปรอินสแตนซ์ในตัวอย่าง java

บทนำสู่การมีความสัมพันธ์ใน Java

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





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

  1. หนึ่งต่อหนึ่ง



  2. หนึ่งต่อหลาย

  3. หลายต่อหนึ่ง

  4. หลายต่อหลายคน



ใน OOP (Object Oriented Programming) ออบเจ็กต์จะสื่อสารกับออบเจ็กต์อื่นเพื่อใช้บริการและฟังก์ชันทั้งหมดที่มีให้โดยอ็อบเจ็กต์นั้น

สมาคม

นี่คือตัวอย่างของการดำเนินการของสมาคม

import java.io. * class Bank {private String name Bank (String name) {this.name = name} public String getBankName () {return this.name}} class Employee {private String name Employee (String name) {this. name = name} public String getEmployeeName () {return this.name}} class Association {public static void main (String [] args) {Bank b = new Bank ('Axis') Employee e = new Employee ('Himanshi') System.out.println (e.getEmployeeName () + 'เป็นพนักงานของ' + b.getBankName ())}}

เอาท์พุต:

has-a-relationship-in-java

นี่คือรูปแบบการเชื่อมโยงพิเศษที่:

  1. นี่แสดงถึง Has-a-relationship

  2. เรียกว่าการเชื่อมโยงแบบทิศทางเดียว (ความสัมพันธ์ทางเดียว) ตัวอย่างเช่นแผนกสามารถมีครูได้ แต่ในทางกลับกันไม่เป็นความจริงดังนั้นจึงเป็นแบบทิศทางเดียว

ตอนนี้ให้เราพูดถึงการจัดองค์ประกอบ

สแกนเนอร์ใน java คืออะไร

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

นี่คือตัวอย่างของห้องสมุดสำหรับแสดงแนวคิดเรื่องการจัดองค์ประกอบ

import java.io. * import java.util. * class Book {public String title public String author Book (String title, String author) {this.title = title this.author = author}} class Library {private final List books Library (รายชื่อหนังสือ) {this.books = books} public List getTotalBooksInLibrary () {return books}} class edureka {public static void main (String [] args) {Book b2 = new Book ('Thinking Java', 'Brua E' ) หนังสือ b3 = หนังสือใหม่ ('Java: Complete Reference', 'Herb S') List books = new ArrayList () books.add (b2) books.add (b3) Library library = new Library (books) List bks = library .getTotalBooksInLibrary () สำหรับ (Book bk: bks) {System.out.println ('Title:' + bk.title + 'and' + 'Author:' + bk.author)}}}

เอาท์พุต:

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

การเปรียบเทียบองค์ประกอบและการสืบทอด: ความสัมพันธ์

  • มันง่ายกว่าในองค์ประกอบในการเปลี่ยนคลาสมากกว่าการถ่ายทอดทางพันธุกรรม

  • การสืบทอดคือการผูกแบบคงที่ในขณะที่องค์ประกอบคือการเชื่อมโยงแบบไดนามิก

  • การสืบทอดคลาสถูกกำหนดตามเวลาคอมไพล์ในขณะที่องค์ประกอบของอ็อบเจ็กต์ถูกกำหนดไว้ที่รันไทม์

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

  • ใน Composition สามารถ จำกัด การเข้าถึงได้ในขณะที่ในองค์ประกอบของ Object จะไม่มีการควบคุมการเข้าถึง

  • Inheritance จะแบ่งการห่อหุ้มโดยการเปิดเผยคลาสย่อยเพื่อดูรายละเอียดของการนำไปใช้งานของพาเรนต์ในขณะที่ใน Object Composition จะไม่ทำลายการห่อหุ้มเนื่องจากอ็อบเจ็กต์ถูกเข้าถึงอย่างสมบูรณ์ผ่านอินเทอร์เฟซ

  • Inheritance จะให้ความสามารถในการใช้โค้ดซ้ำได้ในขณะที่ใน Object Composition อนุญาตให้แสดงการเชื่อมโยง

ตัวอย่างที่ 1:

class Operation {int square (int n) {return n * n}} class Circle {Operation op // aggregation double pi = 3.14 double area (int radius) {op = new Operation () int rsquare = op.square (radius) // การใช้รหัสซ้ำ (เช่นมอบหมายการเรียกใช้เมธอด) return pi * rsquare} public static void main (String args []) {Circle c = new Circle () double result = c.area (5) System.out.println (result)}}

เอาท์พุต:

ตัวอย่างที่ 2:

class House {Kitchen k = new Kitchen () // รหัสเพิ่มเติมสำหรับบ้าน class} Class Kitchen {// code of kitchen class}

หากบ้านถูกทำลายห้องครัวก็จะถูกทำลายไปด้วย สิ่งนี้เรียกว่าองค์ประกอบเมื่อสองเอนทิตีขึ้นอยู่กับกันและกัน คลาสอ้างอิง (ห้องครัว) ไม่สามารถอยู่ได้หากไม่มีคลาสคอนเทนเนอร์ (บ้าน)

ด้วยเหตุนี้เราจึงมาถึงตอนจบของบทความ Has A Relationship In Java โดยพื้นฐานแล้วในการจัดองค์ประกอบคลาสสามารถใช้ฟังก์ชันการทำงานของคลาสซ้ำได้โดยการสร้างการอ้างอิงไปยังออบเจ็กต์ของคลาสที่ต้องการใช้ซ้ำ เรียกได้ว่าเป็นกรณีพิเศษของการรวมตัว

พิมพ์สองครั้งเพื่อ int java

กำจัดไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer

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