예제가 있는 Java의 구성이란?
게시 됨: 2022-11-19Java 프로그래밍 언어의 다재다능함 덕분에 클래스 간의 이중성을 줄이면서 코드를 재사용할 수 있습니다. Java는 클래스 간의 관계를 구축하여 코드 재사용성을 용이하게 하며 이러한 관계에는 상속과 연관의 두 가지 유형이 있습니다. 상속을 통해 is-a 관계를 구현하고 기존 클래스에서 새 클래스를 생성할 수 있지만 연결 또는 has-a 관계는 코드 재사용성을 보장합니다.
has-a 관계는 Java의 집계 및 구성 이라는 두 가지 범주로 더 나뉩니다 . 이 기사에서는 Java 의 컴포지션 개념을 살펴보고 예제를 통해 기본 사항을 이해하는 데 도움을 줍니다.
Java의 관계 개요
Java의 관계는 클래스가 관련된 다양한 방식을 나타냅니다. 일반적으로 Java에는 두 가지 유형의 관계가 있습니다.
- 관계
- 관계 있음
원천
Is-a 관계(상속)
Java의 상속 기능을 사용하면 is-a 관계를 구현할 수 있습니다. 이 경우 한 클래스가 다른 클래스를 상속합니다. 예를 들어 'Flower' 클래스가 'Lily' 클래스를 상속받은 경우 'Lily' 클래스는 'Flower'와 is-a 관계를 갖는다고 할 수 있습니다. 그것은 또한 백합이 꽃임을 암시합니다.
예: 백합은 '꽃'이고, 컴퓨터는 '장치'입니다.
관계 있음(협회)
has-a 관계는 클래스가 다른 클래스의 인스턴스를 사용한다는 것을 의미하며 Java에서는 이러한 관계를 연관(association)이라고 합니다. 예를 들어, 클래스 P가 다른 클래스 Q의 참조를 보유하는 경우 이는 P가 클래스 Q의 모든 속성에 액세스할 수 있음을 의미합니다.
예: 컴퓨터에는 '프로세서'가 있고, 벌에는 '침이 있습니다' 등
Java의 연관은 객체를 사용하는 두 개의 개별 클래스 간의 관계입니다. 관계는 다음과 같은 유형일 수 있습니다.
- 일대다: 하나의 개체가 여러 개체와 연결됩니다.
- 일대일: 하나의 개체가 단일 개체와 연결됩니다.
- 다대다: 많은 개체가 다른 여러 개체와 연결됩니다.
- 다대일: 많은 개체가 하나의 개체와 연결됩니다.
연결에는 집계와 구성의 두 가지 유형이 있습니다.
자바의 구성
Java의 컴포지션 은 클래스 간의 관계를 구현하는 설계 기술입니다. 이 연결에서 한 클래스는 다른 클래스를 포함합니다. 또한 포함된 클래스는 포함하는 클래스에 의존하며 독립적으로 존재할 수 없습니다. 즉, 하나의 클래스는 상호 의존적인 기능을 가진 다른 클래스를 포함합니다.
예를 들어 'Car' 클래스에는 'Engine' 및 'Battery' 클래스가 포함되어 있습니다. 따라서 'Car'는 'Engine' 및 'Battery'와 하-아(has-a) 관계에 있으며 후자의 두 가지는 'Car' 없이 독립적으로 존재할 수 없다.
또 다른 실제 사례를 살펴보겠습니다. 인체에는 신장이 있고 장기는 인체 없이는 존재할 수 없습니다. 따라서 'Human'은 'Kidneys'라는 클래스와 has-a 관계가 있는 클래스라고 생각하면 Java 예제 에서는 신장이 인체 없이 독립적으로 존재할 수 없기 때문에 구성입니다.
귀하를 위한 upGrad의 독점 소프트웨어 개발 웨비나 –
SAAS 비즈니스 – 무엇이 그렇게 다른가요?
Java 예제에서 컴포지션 구현
이제 Java에서 컴포지션 의 개념을 보여주는 다음 프로그램을 고려하십시오 . 더 나은 이해를 위해 단계별로 나누어 보겠습니다.
1단계: 첫 번째 단계에서는 'Car' 클래스를 만들고 메서드 및 데이터 멤버를 선언 및 정의합니다.
클래스 자동차
{
// 데이터 멤버 및 메서드 선언
개인 문자열 색상;
개인 int 속도;
공공 무효 carFeatures()
{
System.out.println(“자동차 색상= “+색상 + ” 최대 속도= ” + 속도);
}
공공 무효 setColor(문자열 색상)
{
this.color = 색상;
}
공공 무효 setspeed(int 속도)
{
this.speed = 속도;
}
}
2단계: 다음으로 위의 'Car' 클래스를 확장하는 'Fiat' 클래스를 만듭니다. 'Fiat' 클래스는 합성을 통해 FiatEngine 클래스 객체 start() 메서드를 사용하여 'Fiat' 클래스가 FiatEngine을 '가지고 있음'을 암시합니다. Fiat는 자동차이므로 'Car' 클래스에서 확장됩니다.
클래스 피아트 확장 자동차
{
// Car 클래스의 모든 속성을 상속합니다.
공공 무효 setStart()
{
FiatEngine e = new FiatEngine();
e.start();
}
}
3단계: Java 구성 프로그램의 다음 단계에서는 위의 'Fiat' 클래스에서 클래스 개체를 사용하는 FiatEngine 클래스를 만듭니다.
클래스 FiatEngine
{
공공 무효 시작()
{
System.out.println("엔진이 시작되었습니다.");
}
공공 무효 정지()
{
System.out.println("엔진이 멈췄습니다.");
}
}
4단계: 프로그램의 마지막 단계에서는 CompositionExample 클래스를 만들고 'Fiat' 클래스의 개체를 만들고 초기화합니다.
클래스 CompositionExample
{
공개 정적 무효 메인(String[] args)
{
피아트 f = 새로운 피아트();
f.setColor("검은색");
f.setspeed(175);
f.carFeatures();
h.setStart();
}
}
산출:
자동차 색상= 검은색 최대 속도= 175
엔진이 시작되었습니다.
세계 최고의 대학에서 소프트웨어 개발 과정을 온라인으로 배우십시오. PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 취득하여 경력을 빠르게 쌓으십시오.
Java의 집계 및 구성
Java의 집계 및 구성 은 클래스 간의 종속성 측면에서 서로 다른 두 종류의 has-a 관계입니다. 집계에서 컨테이너 및 참조 클래스는 독립적으로 존재하는 반면 컴포지션 참조 클래스는 컨테이너 클래스가 없으면 더 이상 존재하지 않습니다. 따라서 참조 클래스는 구성에서 해당 컨테이너 클래스에 종속됩니다.
다음 은 Java에서 집계와 구성 의 차이점을 이해하기 위한 실제 예 입니다. 자동차에는 엔진, 브레이크, 배터리, 헤드라이트, 뮤직 플레이어 등 다양한 부품이 있습니다. 자동차는 뮤직 플레이어 없이 작동할 수 있지만 엔진이나 배터리와 같은 필수 부품 없이는 달릴 수 없습니다. 따라서 자동차와 음악 플레이어는 집합 관계이고 엔진과 자동차는 구성 관계라고 할 수 있습니다.
Java에서 구성을 사용하면 어떤 이점이 있습니까?
이제 Java의 컴포지션 개념을 기본적으로 이해했으므로 이 기술의 이점에 대한 개요는 다음과 같습니다.
- Java의 구성은 코드 재사용성을 용이하게 합니다.
- Java의 컴포지션을 사용하면 클라이언트 클래스에 대한 다른 객체의 가시성을 제어하고 필요한 것을 재사용할 수 있습니다.
- Java는 다중 상속을 지원하지 않지만 구성을 사용하여 문제를 해결할 수 있습니다.
- Java의 컴포지션 은 유연하며 런타임에 멤버 개체를 변경하여 프로그램의 동작을 변경할 수 있습니다.
- Java 컴포지션은 테스트 기반 개발에 특히 유용한 기능인 더 나은 클래스 테스트 가능성을 제공합니다.
- 컴포지션 기반 디자인에는 클래스가 더 적습니다.
소프트웨어 엔지니어링에 대한 인기 코스 및 기사
인기 프로그램 | |||
소프트웨어 개발의 임원 PG 프로그램 - IIIT B | 블록체인 인증 프로그램 - PURDUE | 사이버 보안 인증 프로그램 - PURDUE | 컴퓨터 과학 MSC - IIIT B |
기타 인기 기사 | |||
미국의 클라우드 엔지니어 급여 2021-22 | 미국의 AWS 솔루션 아키텍트 급여 | 미국의 백엔드 개발자 급여 | 미국 프론트엔드 개발자 연봉 |
미국의 웹 개발자 급여 | 2022년 스크럼 마스터 인터뷰 질문 | 2022년 사이버 보안 분야에서 경력을 시작하는 방법은 무엇입니까? | 공대생을 위한 미국 취업 옵션 |
결론
Java의 컴포지션 은 클래스 간의 관계가 있고 코드를 재사용하려는 경우 탁월한 기술입니다. 요약하자면 다음은 Java 구성에 대해 기억해야 할 몇 가지 핵심 사항입니다.
- Java의 컴포지션은 관계가 있음을 나타냅니다.
- 구성에서 하나의 클래스는 다른 클래스를 포함하며 포함된 클래스는 포함하는 클래스에 의존하며 독립적으로 존재할 수 없습니다.
- 음악작품 연결의 두 항목은 서로 종속되어 있습니다.
- 다른 개체를 참조하는 인스턴스 변수를 통해 Java에서 합성을 수행할 수 있습니다.
소프트웨어 개발에서 upGrad의 Executive PG 프로그램으로 경력을 향상시키십시오.
소프트웨어 개발은 젊은 전문가들에게 가장 수익성이 좋은 직업 중 하나입니다. 이미 업계에 종사하고 있거나 시작하려는 경우 소프트웨어 개발에서 upGrad의 Executive PG 프로그램에 등록해야 합니다 . 이 프로그램은 주문형 기술과 가장 높은 비용을 지불하는 10가지 코딩 언어 및 도구를 가르칩니다. 블록체인 개발, 전체 스택 개발, DevOps 및 클라우드 백엔드 개발을 포함한 네 가지 전문 분야 중에서 선택할 수 있습니다.
고액 프로그래밍 언어 학습과 함께 30개 이상의 사례 연구 및 프로젝트를 수행할 수 있습니다. 세계적 수준의 교수진이 과정에 대한 실시간 강의 및 온라인 세션을 진행합니다. 학생 지원은 24시간 제공됩니다.
지금 신청 하여 가장 빠른 과정에 입학하세요!
Java에서 구성 및 상속이란 무엇입니까?
Java의 구성 및 상속은 개체와 클래스 간의 관계를 설정하는 두 가지 프로그래밍 기술입니다. 컴포지션은 다른 클래스를 포함하는 한 클래스와의 관계를 나타냅니다. 반면에 상속은 한 클래스가 다른 클래스의 속성과 동작을 획득하는 is-a 관계를 나타냅니다.
Java에서 컴포지션의 목적은 무엇입니까?
Java의 구성은 코드 재사용성을 허용하고 클래스의 더 나은 테스트 가능성을 제공합니다. Java는 다중 상속을 지원하지 않지만 컴포지션은 그렇게 하는 방법을 제공합니다.
컴포지션은 OOP입니까?
구성은 객체 지향 프로그래밍의 기본 개념입니다. 한 클래스가 인스턴스 변수를 통해 다른 클래스의 하나 이상의 객체를 참조하는 관계를 설명합니다.