2016-10-01 10 views
1

는 "-A를 갖는"의 필드 중 하나의 참조 형 변수로 다른 클래스의.자바 구성 - 기본 유형 변수에도 유효합니까? 예를 들면, 자동차를 구성 클래스는 것을 의미</p> <p>엔진을 가지고 그래서</p> <p>인 조성물 정의에 대해 판독 하였다

무엇 나를 혼란 내가 찾을 수없는, 우리가 예를 들어 은행 계좌 클래스를 가지고 있고, 우리는이를 사용하는 경우 :

개인 더블 밸런스 = 0.0;

계정에 잔액이 있다고 말할 수 있습니까? 이것은 원시 타입 변수가 또한 "합성"의 정의에 포함될 수 있다는 것을 의미합니까?

도움 주셔서 감사합니다.

+0

팁 : 은행 계좌 잔액 등의 금전적 가치에 대해서는 double 또는 float 프리미티브 유형 대신 BigDecimal 객체를 사용하십시오. –

답변

0

연관, 집계, 구성, 추상화, 일반화, 구현, 종속성은 클래스 간의 관계입니다. 프리미티브 변수에는 이러한 용어를 사용하지 않습니다.

구성은 개체 사이에 "has-a"관계입니다.입니다. 은행 계좌 클래스에 잔액이 있지만 잔액이 개체가 아닙니다. 따라서 구성의 정의에는이 내용이 포함되지 않습니다.

+0

은행 계좌의 예에 따라 조금 더 자세히 설명해주십시오. :) –

+0

네, 저의 질문은 "다소"오리지널 타입 변수에 대해 아무 것도 말하지 않는 대부분의 컴포지션 정의로 생각했습니다. 나는 컴포지션이 무엇을 의미하는지, 아주 단순한 개념을 대부분 이해하고 있다고 생각합니다.하지만 질문이 내 방식으로 제기된다면, 클래스가 원시 타입을 자기 필드 중 하나로 가질 때 그 관계를 무엇이라고 부릅니까? 왜 우리는 같은 문장과의 관계를 설명 할 수 있습니까? 우리는 또한 "int 코드"를 가질 수 있고 계정에 코드가 있다고 말할 수 있습니다 (문자열을 사용하더라도 아마 의미가 있습니다) –

+0

정의 구성에 따라 객체 사이에 "has-a"관계가 있습니다 (Java가 아닙니다. 사물). 컴퓨터 과학에서 객체의 정의를 참조하십시오 : https://en.wikipedia.org/wiki/Object_(computer_science). 그래서 사실 모든 유형의 변수는 객체로 간주 될 수 있습니다. –

0

작문은 개념이고 언어 별 규칙에 국한되어서는 안된다고 생각합니다.

예를 들어 계정 클래스가 잔액과 "has-a"관계를 맺고 있습니다. 그러나 기본 유형 double은 균형을 나타 내기에 충분하기 때문에 예제에서 기본 double을 사용했습니다. 그러나 그것은 "has-a"관계를 변화시키지 않습니다. 따라서 변수가 원시적 유형인지 아닌지에 관계없이 개념적으로 그것이 구성의 일부분이어야합니다.

wikipedia entry of composition에는 원시가 컴포지션의 일부로 간주되는 C의 컴포지션 예제가 있습니다.

일반 UML 다이어그램에서 계정 클래스의 속성을 별도의 블록으로 표시하지 않고 잔액을 별도의 블록으로 표시하는 대신 잔액이 복합 구조 - 계정의 일부임을 나타냅니다.