본문 바로가기

Java의 정석

객체 지향 개념 - 2 인스턴스의 생성과 사용

인스턴스의 생성과 사용

인스턴스의 생성 방법

클래스명 참조변수명; - 객체를 다루기 위한 참조 변수 선언

참조변수명 = 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

 

Java의 정석, 인스턴스의 생성과 사용(1/4)

Tv t; - Tv라는 인스턴스를 참조하기 위해 참조변수 t 선언

t = new Tv(); - Tv인스턴스를 생성하고 0x100 주소에 메모리를 할당 참조 변수 t는 그 주소를 갖고 있음

 

Tv t2 = new Tv();
t2 = t;
t.channel = 7;
System.out.println(t2.channel);

Java의 정석, 인스턴스의 생성과 사용(3/4)

위와 같이 Tv인스턴스를 가리키는 t2라는 참조 변수를 선언 후 t2에 t를 저장하면 t2는 t의 메모리 주소를 참조하게 된다.

때문에 t를 변경하면 t2를 출력해도 같은 값이 출력된다.

 

Java의 정석, 인스턴스의 생성과 사용(4/4)

위 그림과 같이 여러 개의 참조변수가 하나의 인스턴스를 가리키는 것은 가능하나 하나의 참조변수가 여러개의 인스턴스를 가리키는 것은 불가능하다.