본문으로 바로가기

참조

category onYouTube/Java 2021. 3. 27. 02:19
  • 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