Java의 집계

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.

집계는 Java와 같은 다양한 개체 지향 프로그래밍 언어에서 수행할 수 있는 클래스 간의 연결 유형입니다. 코드를 빠르고 효율적으로 재사용할 수 있는 프로세스로, 프로그램을 훨씬 쉽게 작성하고 보다 효율적으로 실행할 수 있습니다.

일반적으로 집계는 다른 클래스 내의 클래스를 참조하는 것입니다. 이것은 포함하는 클래스와 포함하는 클래스 사이에 소위 HAS-A 관계를 생성합니다. 이러한 관계는 클래스 중 하나가 다른 클래스를 포함함을 의미하기 때문에 단방향이라는 특징이 있습니다. 이것은 그 반대가 발생하는 것을 방지합니다.

예를 들어 프로그래밍 관점에서 개체 클래스로 볼 수 있는 회사에는 직원 집합이 있다고 말할 수 있습니다. 차례로 이들은 자체 속성을 가진 객체로 볼 수도 있습니다. 이 경우 포함하는 클래스는 회사이고 포함하는 클래스는 직원입니다. 이 관계는 이 방향, 즉 회사에서 직원에게만 의미가 있습니다. 반대 방향의 관계는 직원이 회사를 포함한다고 말하는 것과 같기 때문에 말이 되지 않습니다. 이것이 말이 안 된다는 사실은 일방적인 관계임을 보여준다.

클래스 다이어그램의 집계

UML(Unified Modeling Language)은 복잡한 소프트웨어 시스템을 설계하기 위해 만든 범용 시각 언어의 일종으로 시스템의 구조와 특성을 설명하기 위해 클래스 다이어그램을 사용합니다. 이 다이어그램에서 각 클래스와 다른 클래스와의 관계는 기하학적 도형을 통해 표시됩니다. 집계의 경우 이 관계는 포함 클래스 측면에 있는 속이 빈 다이아몬드로 표시되며 직선 세그먼트를 통해 포함 클래스에 연결됩니다. 예를 들어:

Java의 집계

이는 Well 클래스에 Duck 클래스가 포함되어 있음을 나타내는 집계 관계입니다.

집계는 Java에서 어떻게 구현됩니까?

Java에서 집계 구현은 비교적 간단합니다. 두 개의 클래스를 만든 다음 두 번째 클래스 내에서 첫 번째 클래스를 참조하기만 하면 됩니다.

“have a” 또는 “have to” 관계를 설정하는 것 외에도 Java 집계는 컨테이너 개체와 콘텐츠 간의 약한 관계를 특징으로 합니다. 이것은 하나의 파괴가 다른 하나의 파괴를 의미하지 않는다는 것을 의미합니다. 이러한 유형의 관계를 이해하기 위해 교사와 학생 간의 관계를 예로 들 수 있습니다. 이 경우 교사의 실종 또는 사망은 학생의 실종 또는 사망으로 이어지지 않습니다.

그 반대의 경우는 인간과 마음의 관계일 것입니다. 사람 안에 마음이 담겨 있는 것은 틀림없지만, 이 관계는 집합의 관계와는 다르다. 이 경우 둘 다 서로 의존하기 때문입니다. 인간 존재의 파괴는 또한 심장을 파괴하는데, 심장이 기능하기 위해서는 신체가 제공하는 영양분과 산소 공급이 필요하기 때문입니다. 반면에 심장이 파괴되면 인간도 파괴됩니다. 심장 없이는 살 수 없기 때문입니다(이식이나 기타 인공 생명 유지 방법은 제외).

집계 예

다음 코드는 Java를 사용하여 두 클래스 간의 연관 형식으로 집계 구현을 예시합니다. 예는 회사의 어떤 직원이 자신의 자동차를 가지고 있고 어떤 직원은 가지고 있지 않은지, 어떤 직원은 자전거를 가지고 있고 어떤 직원은 가지고 있지 않은지 추적하는 프로그램에 관한 것입니다.

우리는 직원이 자동차를 “가지고” 있고/또는 직원이 자전거를 “가지고” 있음을 나타내는 관계를 설정하려고 하므로 직원이 속하게 될 클래스(직원이라고 부름) 간의 집계 관계입니다. , 명백한 이유로) 및 두 개의 추가 클래스, 하나는 자동차용이고 다른 하나는 자전거용입니다.

이러한 경우 가장 먼저 해야 할 일은 해당 클래스를 만드는 것입니다. 이 경우 세 가지 클래스가 있습니다. 하나는 자동차용, 하나는 자전거용, 다른 하나는 직원용입니다. 다음 그림은 Car, Bicycle 및 Employee라는 이름의 이러한 클래스를 만드는 코드를 보여줍니다.

Java의 집계

위의 코드에서 각 클래스에는 연관된 특정 속성이 있음을 알 수 있습니다. 자동차의 경우 자동차와 관련된 모델, 색상 및 번호판을 속성으로 가지고 있습니다. 번호판 번호 및 모델과 관련된 자전거도 마찬가지입니다.

Employee 클래스를 살펴보면 이 클래스에 직원의 이름을 나타내는 monbreemp 속성과 직원의 ID 번호를 나타내는 empid 속성이 있음을 알 수 있습니다. 그런 다음 Car 및 Bike 클래스를 참조하여 이러한 클래스 간의 집계 연결을 만듭니다. 마지막으로 직원의 기록이 그의 자동차 및 자전거와 함께 생성됩니다.

이 예에서 Employee 클래스 내에서 Car 및 Bike 클래스를 참조하면 Employee 클래스 내에서 bike 및 car 특성에 액세스할 수 있습니다.

이 프로그램의 출력은 다음과 같습니다.

________직원 세부 정보________

직원 이름: 자비에르

사원 식별 번호: 210921

________직원 차량 세부정보________

차종: 코롤라

차 색깔: 녹색

자동차 번호판: XFZ-043

________직원 자전거 세부정보________

자전거 모델: MERIDA

자전거 번호판: LAA-11B

참조

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados