- new( )를 통해서 생성하는 것은 기본 데이터 타입이 아닌, 참조형 데이터 타입임
- 복제 : 참조 = 복사본 : 바로가기
// 복제
int a = 1;
int b = a;
// a에 있는 1을 복제해서 b에 대입한 것임
b = 2;
System.out.println(a); // 1
// b값을 변경해도 a는 그대로임
// 참조
A a = new A(1);
A b = a;
// a와 b는 인스턴스의 주소값을 가짐
b.id = 2;
System.out.println(a.id); // 2
static void _reference1(A b) {
b = new A(2);
// 매개변수 b를 다른 객체로 변경함
}
public static void runReference1() {
A a = new A(1);
_reference1(a);
System.out.println("runReference1, "+a.id); // runReference1, 1
}
static void _reference2(A b) {
b.id = 2;
// 매개변수 b의 인스턴스 변수 값을 변경함
}
public static void runReference2() {
A a = new A(1);
_reference2(a);
System.out.println("runReference2, "+a.id); // runReference2, 2
}
public static void main(String[] args) {
runReference1();
runReference2();
// runReference2()의 a와 _reference2의 b는 같은 객체를 참조하고 있음
}
'onYouTube > Java' 카테고리의 다른 글
Collections Framework (0) | 2021.03.27 |
---|---|
제네릭 (0) | 2021.03.27 |
상수와 enum (0) | 2021.03.27 |
Object 클래스 (0) | 2021.03.26 |
예외 (0) | 2021.03.26 |