👉 클래스를 선언한 것은 설계도 작성! 클래스로부터 인스턴스를 생성해야 한다.
클래스명 변수명;
변수명 = new 클래스명();
ex)
Tv t;
t=new Tv();
👉 예제
class Ex6_1{
public static void main(String[] args) {
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println("현재 채널은 " + t.channel + " 입니다.");
}
}
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
1. Tv t;
👉 Tv 클래스 타입의 참조변수 t를 생성한다. 메모리에 참조변수 t 공간이 마련된다.
2. t = new Tv();
👉 Tv 클래스의 인스턴스가 메모리의 빈 공간에 생성되고, 멤버 면수는 각 자료형에 해당하는 기본값으로 초기화된다.
👉 참조변수 t에 인스턴스의 주소값이 저장되어, t를 통해 인스턴스에 접근할 수 있게 된다.
3. t.channel = 7;
👉 참조변수 t에 저장된 주소에 있는 인스턴스의 멤버변수 channel에 7을 저장한다.
4. t.channelDown();
👉 참조변수 t에 저장된 주소에 있는 인스턴스의 channelDown
메서드를 호출한다.
5. System.out.println("현재 채널은 " + t.channel + " 입니다.");
👉 현재 채널의 값은 6이므로 현재 채널은 6 입니다.
를 출력한다.
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.