아래의 소스에서 인자로 넘겨준 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 | Maven 관련 에러 | Martin | 2017.08.31 | 8134 |
| 12 | java call stack 출력 샘플 (파일, 화면) | Martin | 2017.03.22 | 916 |
| 11 | 파일 쓰기 | Martin | 2017.03.22 | 861 |
| 10 | 로그 | Martin | 2017.02.06 | 811 |
| 9 | 이클립스 단축키 | Martin | 2016.11.24 | 1402 |
| 8 | jar 내보내기 및 실행 예제 | Martin | 2016.11.10 | 684 |
| 7 | 이클립스 설정 | Martin | 2016.11.02 | 921 |
| 6 | 이클립스 플러그인 설치 | Martin | 2016.10.26 | 929 |
| 5 | Java MessageBox 출력 | Martin | 2016.10.24 | 719 |
| 4 | java 및 이클립스 개발환경 구성 | Martin | 2016.10.19 | 774 |
| 3 | 접근 제어자 | Martin | 2016.10.15 | 569 |
| » | 매개 변수 | Martin | 2016.10.15 | 598 |
| 1 | 자바책 | Martin | 2016.10.14 | 3274 |