Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

개발 일기

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