개발 일기

PassByReference 참조 자료형 본문

Java&Spring/Java

PassByReference 참조 자료형

flow123 2022. 3. 7. 22:10
public class ReferencePass {
	public static void main(String[] args) {
		ReferencePass reference = new ReferencePass();
		reference.callPassByReference();
	}

	public void callPassByReference() {
		MemberDto member = new MemberDto("Sangmin");
		System.out.println("before passByReference");
		System.out.println("member.name=" + member.name);
		passByReference(member);
		System.out.println("after passByReference");
		System.out.println("member.name=" + member.name);
	}

	public void passByReference(MemberDto member) {
		member.name = "SungChoon";
		System.out.println("in passByReference");
		System.out.println("member.name=" + member.name);

	}
}

 

passByReference 에서 SungChoon을 호출하고 난 뒤, 

다시 메서드 CallPassByReference로 돌아간 뒤에도, member의 이름은 SungChoon으로 바뀐 상태이다. 

메서드의 매개 변수로 참조자료형을 넘길 때에는, 메서드 안에서 객체의 상태를 변경한 결과에 영향을 받기 때문이다. 

다시 말해서 passByReference에서 member.name = "sungchoon"으로 선언했을 때, 데이터가 Sangmin에서 SungChoon으로 바뀐 상태이다. 

Comments