Java는 현실이라고 할 수 있는 객체와 프로그래밍 사이의 다양한 관계를 제공합니다. 때로는 이해하기가 매우 어렵거나 관계를 구현하기 위해 그렇게 말할 수도 있습니다. 따라서 Java는 사용자에게 구성 및 집계 관계를 제공합니다. 구성에서 우리는 "속함" 관계라고 부르는 관계를 구축할 수 있습니다. 논리적으로 우리는 한 객체가 다른 객체보다 크다고 말할 수 있습니다. 집계에서는 모든 개체가 서로 독립적으로 작동하는 "has a" 관계라고 부르는 관계를 구축할 수 있습니다. 집합 관계는 약한 연관성으로 간주하고 구성은 강한 연관성으로 간주합니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
구성 구문은 다음과 같습니다.
public class building { private final Room room; public building () { room = new room (); } } class Room { }
설명:
집계 구문은 다음과 같습니다.
public class student { private List students; public student () { students = new list_students(); } } class student { }
설명:
아래는 Java에서 구성과 집계가 어떻게 작동하는지 보여줍니다.
구성은 관계의 "속함"을 지정하는 데 사용됩니다. 이는 항목 중 하나가 다른 항목보다 지능적으로 더 크다는 것을 의미합니다. 즉, 개체라고 말할 수 있습니다. 예를 들어 방을 건물의 일부로 생각하거나 건물에 방이 있다고 말할 수 있습니다. 따라서 근본적으로 '~에 속한다' 또는 '갖고 있다'라고 부르는 것은 관점의 문제일 뿐입니다.
기본적으로 구성은 포함하는 객체가 그것을 주장한다는 사실에 비추어 볼 때 강한 관계입니다. 이러한 방식으로 객체 수명 주기를 제거하면 상위 노드를 제거하면 자동으로 하위 노드도 제거된다는 의미입니다. 예를 들어, 방을 파괴하는 경우를 생각해 볼 수 있습니다. 그러면 건물도 파괴됩니다. 그렇다고 해서 포함하는 객체가 해당 부분과 함께 존재할 수 없다는 의미는 아닙니다. 예를 들어, 구조물 내부의 모든 칸막이를 파괴하여 방을 없앨 수 있습니다. 어쨌든 구조는 존재할 것입니다. 카디널리티에 관한 한, 포함된 항목은 필요한 만큼 많은 부분을 가질 수 있습니다. 그럼에도 불구하고 전체 부품에는 정확히 하나의 구획이 있어야 합니다.
Java에서 집계가 작동하는 방식은 다음과 같습니다.
우리는 작곡에 '관계'가 있다는 것을 알고 있습니다. 마찬가지로 집계에도 "Has a" 관계가 있습니다. 기본적인 차이점은 집계에 상위 노드나 개체가 포함된다는 것입니다. 이 관계에서 모든 객체는 서로 독립적입니다. 예를 들어, 자동차와 그 바퀴의 다른 바퀴, 동일한 바퀴를 다른 자동차에 설치할 수 있으면 문제 없이 작동하는 파일이라고 생각할 수 있습니다. 바퀴가 없는 자동차는 쓸모가 없다는 것을 알기에 물체의 모든 부분을 조립하는 이유가 바로 집합관계입니다.
다음은 구성 및 집계 관계의 예입니다.
코드:
import java.io.*; import java.util.*; class Lib { public String name_book; public String bk_author; Lib(String name_book, String bk_author) { this.name_book = name_book; this.bk_author = bk_author; } } class Library { private final List<Lib> Lib_books; Library (List<Lib> Lib_books) { this.Lib_books =Lib_books; } public List<Lib> book_details(){ return Lib_books; } } class composition { public static void main (String[] args) { Lib book1 = new Lib("Database management", "Rajiv Chopra "); Lib book2 = new Lib("MySql", "Rajiv Chopra l"); Lib book3 = new Lib("oracle", "Donald Burleson"); List<Lib> Lib_books = new ArrayList<Lib>(); Lib_books.add(book1); Lib_books.add(book2); Lib_books.add(book3); Library library = new Library(Lib_books); List<Lib> bks = library.book_details(); for(Lib bk : bks){ System.out.println("name_book : " + bk.name_book + " and " +" bk_author : " + bk.bk_author); } } }
설명:
출력:
코드:
import java.io.*; import java.util.*; class stud_class { String stud_name; int roll_no ; String stud_dept; stud_class(String stud_name, int roll_no, String stud_dept) { this.stud_name = stud_name; this.roll_no = roll_no; this.stud_dept = stud_dept; } } class Depofcollege { String stud_name; private List<stud_class> students; Depofcollege(String stud_name, List<stud_class> students) { this.stud_name = stud_name; this.students = students; } public List<stud_class> getStudentsDetails() { return students; } } class college { String collegeName; private List<Depofcollege> departments; college(String collegeName, List<Depofcollege> departments) { this.collegeName = collegeName; this.departments = departments; } public int totalstudents() { int noOfStudents = 0; List<stud_class> students; for(Depofcollege dept : departments) { students = dept.getStudentsDetails(); for(stud_class s : students) { noOfStudents++; } } return noOfStudents; } } class aggregation { public static void main (String[] args) { stud_class stud1 = new stud_class("Sameer", 5, "IT"); stud_class stud2 = new stud_class("Pooja", 6, "IT"); stud_class stud3 = new stud_class("Sanddep", 8, "Mech"); stud_class stud4 = new stud_class("Jenny", 2, "Mech"); List <stud_class> i_students = new ArrayList<stud_class>(); i_students.add(stud1); i_students.add(stud2); List <stud_class> me_students = new ArrayList<stud_class>(); me_students.add(stud3); me_students.add(stud4); Depofcollege IT = new Depofcollege("IT", i_students); Depofcollege Mech = new Depofcollege("Mech", me_students); List <Depofcollege> departments = new ArrayList<Depofcollege>(); departments.add(IT); departments.add(Mech); college college= new college("MIT", departments); System.out.print("Count of students: "); System.out.print(college.totalstudents()); } }
설명:
출력:
위 글에서 합성과 집합의 기본 구문을 살펴봤고, 합성과 집합의 다양한 예도 살펴봤습니다. 이번 글에서는 자바에서 구성과 집합을 언제, 어떻게 사용하는지 살펴보았습니다.
위 내용은 Java의 구성 및 집계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!