객체의 생성과 사용

정순동·2023년 12월 3일
0

자바기초

목록 보기
20/89

Tv클래스를 예로 계속 들겠다.
Tv클래스를 선언한 것은 Tv설계도를 작성한 것이고, 이를 Tv인스턴스로 생성해야 제품(TV)을 사용할 수 있다. 클래스로 부터 인스턴스를 생성하는 방법은 여러가지가 있지만 일반적으로는 다음과 같다.

	클래스명 변수명;
    변수명 = new 클래스명();
    
    Tv t;
    t = new Tv();
  1. Tv t;
    Tv클래스 타입의 참조변수 t를 선언한다. 메모리에 참조변수 t를 위한 공간이 마련된다. 아직 인스턴스가 생성되지 않았으므로 이 참조변수로 할 수 있는 것은 아무것도 없다.

  2. t = new Tv();
    연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성된다. Tv클래스에 정의돼 있던 멤버 변수들은 각 자료형에 해당하는 기본값으로 초기화 되며 메서드를 포함한 객체의 주소가 t라는 참조변수에 저장된다.

자바는 참조변수가 저장하고 있는 메모리를 알 수 없으므로 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다. (Tv t = new Tv() 처럼 타입이 같아야 함.)

비슷한 객체가 여러개라면?

	Tv tv1 = new Tv();
    Tv tv2 = new Tv();
    
    tv1.channel = 5;
    tv2.channel = 12;

위와같이 각각의 인스턴스에 따로따로 값을 넣을수 있다. 만약 아래와 같은 메서드가 있다면?

class Tv {
	int channel;
    
    public void showChannel() {
    	System.out.println("현재 채널은 : " + channel);

아래와 같이 사용할 수 있을것이다.

	tv1.showChannel;	//"현재 채널은 : 5"
    tv2.showChannel;	//"현재 채널은 : 12"

0개의 댓글