예제: 두 변수의 교환 이 개념을 한 번 더 확인하는 차원에서, 다음 코드가 a
와 b
를 맞바꾸는 과정을 알아보자(엄밀히 말하면 a
와 b
에 바인딩된 객체가 바뀌는 것이다).
t= a a= b b= t
먼저 a
와 b
가 서로 다른 값 1234
와 99
을 가진 두 개의 객체에 각기 바인딩되어 있다고 가정하자. [그림 1.2.5]를 참조해 다음과 같이 단계별로 따라가면서 확인하라.
▲ 그림 1.2.5 두 변수의 값 교환하기
• t = a
는 a
를 t
에 할당한다. 즉 a
(가 참조하는 객체)를 t
에 할당하므로, a
와 t
는 모두 1234
값을 가진 int
객체에 바인딩된다.
• a = b
는 b
를 a
에 할당한다. 즉 b
(가 참조하는 객체)를 a
에 할당하므로, a
와 b
는 모두 99
값을 가진 int
객체에 바인딩된다.
• b = t
는 t
를 b
에 할당한다. 즉 t
(가 참조하는 객체)를 b
에 할당하므로, t
와 b
는 모두 1234
값을 가진 int
객체에 바인딩된다.
결국 두 변수가 참조하는 객체가 맞바뀐다. 이제 변수 a
는 99
값을 가진 객체에 바인딩되며, 변수 b
는 1234
값을 가진 객체에 바인딩된다.