아래의 소스에서 인자로 넘겨준 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);
}
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
13 | 자바책 | Martin | 2016.10.14 | 2730 |
» | 매개 변수 | Martin | 2016.10.15 | 102 |
11 | 접근 제어자 | Martin | 2016.10.15 | 61 |
10 | java 및 이클립스 개발환경 구성 | Martin | 2016.10.19 | 232 |
9 | Java MessageBox 출력 | Martin | 2016.10.24 | 246 |
8 | 이클립스 플러그인 설치 | Martin | 2016.10.26 | 379 |
7 | 이클립스 설정 | Martin | 2016.11.02 | 352 |
6 | jar 내보내기 및 실행 예제 | Martin | 2016.11.10 | 117 |
5 | 이클립스 단축키 | Martin | 2016.11.24 | 868 |
4 | 로그 | Martin | 2017.02.06 | 353 |
3 | 파일 쓰기 | Martin | 2017.03.22 | 351 |
2 | java call stack 출력 샘플 (파일, 화면) | Martin | 2017.03.22 | 331 |
1 | Maven 관련 에러 | Martin | 2017.08.31 | 7564 |