아래의 소스에서 인자로 넘겨준 member에 name도 SungChoon으로 변경된다.
주석으로 막은 곳을 풀고 그 아래 줄을 주석으로 막으면 인자로 넘겨준 MemberDTO 객체의 name은 변경되지 않는다.
C로 말하자면 주소(&나 *)로 넘겨준 것이나 마찬가지가 된다.
기본 자료형은 무조건 Pass by Value이고,
참조 자료형 안에 있는 변수들은 매개 변수로 넘어갈 때 참조가 넘어가는 Pass by Reference이다.
public class ReferenceTypes {
// 중간생략
public void passByValue(int a, String b, MemberDTO member) {
a = 20;
b = "z";
// member = new MemberDTO("SungChoon");
member.name = "SungChoon";
System.out.println("passByValue method result !!! ");
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("member.name="+member.name);
}
}