>  기사  >  Java  >  Java의 구성 및 집계

Java의 구성 및 집계

王林
王林원래의
2024-08-30 15:15:151011검색

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 { }

설명:

  • 위 구문에서는 학생의 예를 고려합니다. 먼저 학생이라는 이름으로 공개 클래스를 만든 다음, 다음과 같이 학생이 0 이상이 될 수 있으므로 학생 목록을 만듭니다. 위 구문입니다.
  • 여기서 개체 간의 "has a" 관계도 표시됩니다.

Java에서 구성 및 집계는 어떻게 작동하나요?

아래는 Java에서 구성과 집계가 어떻게 작동하는지 보여줍니다.

구성은 관계의 "속함"을 지정하는 데 사용됩니다. 이는 항목 중 하나가 다른 항목보다 지능적으로 더 크다는 것을 의미합니다. 즉, 개체라고 말할 수 있습니다. 예를 들어 방을 건물의 일부로 생각하거나 건물에 방이 있다고 말할 수 있습니다. 따라서 근본적으로 '~에 속한다' 또는 '갖고 있다'라고 부르는 것은 관점의 문제일 뿐입니다.

기본적으로 구성은 포함하는 객체가 그것을 주장한다는 사실에 비추어 볼 때 강한 관계입니다. 이러한 방식으로 객체 수명 주기를 제거하면 상위 노드를 제거하면 자동으로 하위 노드도 제거된다는 의미입니다. 예를 들어, 방을 파괴하는 경우를 생각해 볼 수 있습니다. 그러면 건물도 파괴됩니다. 그렇다고 해서 포함하는 객체가 해당 부분과 함께 존재할 수 없다는 의미는 아닙니다. 예를 들어, 구조물 내부의 모든 칸막이를 파괴하여 방을 없앨 수 있습니다. 어쨌든 구조는 존재할 것입니다. 카디널리티에 관한 한, 포함된 항목은 필요한 만큼 많은 부분을 가질 수 있습니다. 그럼에도 불구하고 전체 부품에는 정확히 하나의 구획이 있어야 합니다.

Java에서 집계가 작동하는 방식은 다음과 같습니다.

우리는 작곡에 '관계'가 있다는 것을 알고 있습니다. 마찬가지로 집계에도 "Has a" 관계가 있습니다. 기본적인 차이점은 집계에 상위 노드나 개체가 포함된다는 것입니다. 이 관계에서 모든 객체는 서로 독립적입니다. 예를 들어, 자동차와 그 바퀴의 다른 바퀴, 동일한 바퀴를 다른 자동차에 설치할 수 있으면 문제 없이 작동하는 파일이라고 생각할 수 있습니다. 바퀴가 없는 자동차는 쓸모가 없다는 것을 알기에 물체의 모든 부분을 조립하는 이유가 바로 집합관계입니다.

Java의 합성과 집합의 예

다음은 구성 및 집계 관계의 예입니다.

예 #1: 구성

코드:

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);
}
}
}

설명:

  • 위의 예에서는 Java에서 구성 관계를 구현하려고 합니다.
  • 다음 스냅샷을 사용하여 위 프로그램의 최종 출력을 보여줍니다.

출력:

Java의 구성 및 집계

예 #2: 집계 관계

코드:

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에서 집계 관계를 구현하려고 합니다.
  • 다음 스냅샷을 사용하여 위 프로그램의 최종 출력을 보여줍니다.

출력:

Java의 구성 및 집계

결론

위 글에서 합성과 집합의 기본 구문을 살펴봤고, 합성과 집합의 다양한 예도 살펴봤습니다. 이번 글에서는 자바에서 구성과 집합을 언제, 어떻게 사용하는지 살펴보았습니다.

위 내용은 Java의 구성 및 집계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바 리터럴다음 기사:자바 리터럴