나는 mutable/immutable 클래스에 대해 읽고 java의 생성자를 복사하고 this example을 우연히 발견했다. 그는 다음과 같이 게터 사용하는 복사 생성자 내부클래스의 필드에 액세스하는 복사 생성자?
: 내 질문은
/**
* Copy constructor.
*/
public Galaxy(Galaxy aGalaxy) {
this(aGalaxy.getMass(), aGalaxy.getName());
//no defensive copies are created here, since
//there are no mutable object fields (String is immutable)
}
는 것보다 다른 이유
가 그것의 좋은 코딩 연습, 누군가가 복사 생성자가 아닌 내부에 게터를 사용하기 위해 같은 필드에 액세스하는 것 :(aGalaxy.aMass, aGalaxy.aName)
. 그렇게하는 예제를 찾을 수는 있지만 순전히 코딩 스타일인지 또는 복사 생성자 내에서 getters를 사용할 때의 잠재적 이점이 있습니까?
A '저하 복사' 계산 결과 *를 저장하십시오. 다른 사람들이 수업에서 할 수있는 것을 제어 할 수 없으므로 신뢰할 수없는 전술 (좋은 CPU 시간으로 지불 할 수 있음)이 –
aGalaxy.aMass를 사용하는 것이 더 나은 방법인가요? getters를 사용하는 것과 같다고 생각하면 불일치가 발생할 수 있습니다. – KillBill
반대로 getters를 사용하면 더 안전합니다. –