이 문을 수정하지 않습니다 당신 c를 수정하는 경우 :
c2 = c ;
는 c2
에 c
의 값을 복사합니다. c
의 값은 이 아니며이고 Calendar
개체입니다. 참조 용입니다. 이 문 다음에 두 변수는 같은 값을 갖습니다. 동일한 객체에 대한 두 개의 참조입니다. Calendar
개체에 대한 변경 사항은 두 변수를 통해 확인할 수 있습니다.
두 사람이 집 주소를주는 종이 조각을주는 것과 같습니다. 한 사람이 주소를 사용하여 집에 도착한 후 현관 문을 페인트하면 다른 사람도 그 사실을 볼 수 있습니다.
Calendar
-specific이 아닙니다. 이는 Java 클래스의 할당 동작입니다.
(기본적으로 변수, 참조 및 개체를 구별하는 것이 중요합니다. 정상적인 토론에서는 세 가지를 종종 간결하게하기 위해 잘못 사용하지만 필요하면 언제든지 차이를 나타낼 수 있어야합니다.)
참고가이 코드 :
Calendar c2 = Calendar.getInstance();
c2 = c;
가 무의미 새로운 Calendar
인스턴스를 만드는 것입니다.
Calendar c2 = c;
그 코드가 같은 효과가 없을 것이다, 그러나 Calendar.getInstance()
를 호출하고 새로 만든 객체를 버리고 않고 : 그것은으로 더 현명하게 기록 될 것입니다.
나는 그 올바른 .. .. 희망! – SenthilPrabhu
왜 결과를 직접 비교할 수있는 간단한 테스트 프로그램을 작성하지 않습니까? – Mike
이 명령문은 변수 'c2'에 'c'에 대한 참조를 할당합니다. ('c == c2'는'true'입니다). – afk5min