인스턴스의 생성과 사용
인스턴스의 생성 방법
클래스명 참조변수명; - 객체를 다루기 위한 참조 변수 선언
참조변수명 = new 클래스명(); - 객체 생성 후, 생성된 객체의 주소를 참조 변수에 저장
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
위의 class가 있다고 할 때 아래와 같이 생성
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println(t.channel); // 6
Tv t; - Tv라는 인스턴스를 참조하기 위해 참조변수 t 선언
t = new Tv(); - Tv인스턴스를 생성하고 0x100 주소에 메모리를 할당 참조 변수 t는 그 주소를 갖고 있음
Tv t2 = new Tv();
t2 = t;
t.channel = 7;
System.out.println(t2.channel);
위와 같이 Tv인스턴스를 가리키는 t2라는 참조 변수를 선언 후 t2에 t를 저장하면 t2는 t의 메모리 주소를 참조하게 된다.
때문에 t를 변경하면 t2를 출력해도 같은 값이 출력된다.
위 그림과 같이 여러 개의 참조변수가 하나의 인스턴스를 가리키는 것은 가능하나 하나의 참조변수가 여러개의 인스턴스를 가리키는 것은 불가능하다.
'Java의 정석' 카테고리의 다른 글
객체 지향 개념 - 4 선언 위치에 따른 변수의 종류 (0) | 2022.03.03 |
---|---|
객체 지향 개념 - 3 클래스의 또 다른 정의 (0) | 2022.03.02 |
객체 지향 개념 - 1 객체지향 언어? 클래스와 객체 (0) | 2022.02.25 |
Array (0) | 2022.02.24 |
Overflow (0) | 2022.02.23 |