객체 이해하기 0⃣

여름·2020년 12월 2일
0

객체이해하기

목록 보기
1/2
  • 객체? 실제로 존재하는 것, 사물 또는 개념

  • 클래스?
    객체를 정의해 놓은 것
    객체를 생성하는 데 사용

  • Tv클래스 정의

class Tv {
  String color;   //색상
  boolean power;  //전원상태
  int channel;    //채널
          
     void power(){   //전원을 켜고 끄는 메서드. 파라미터도 리턴도없는 메서드.
       power = !power;
 }
     void channelUp(){   //채널을 하나 증가시키는 메서드.
       channel++;
 }
     void channelDown(){  //채널을 하나 감소시키는 메서드.
       channel--;
 }
} 

클래스 먼저 작성한 다음, 클래스로부터 객체를 생성해서 사용.

  • 클래스의 인스턴스화(instantiate)? 클래스로부터 객체를 만드는 과정

  • 클래스를 선언한 것은 설계도를 작성한 것에 불과하므로,
    인스턴스를 생성해야만 제품을 사용할 수 있음.

  • 위에서 만든 클래스의 인스턴스 생성 및 사용

public static void main(String[] args){
  Tv tv;            //Tv인스턴스를 참조하기 위한 변수 tv를 선언.
  tv = new Tv();    //Tv인스턴스를 생성 후 참조변수 tv에 저장.
  tv.channel = 7;   //Tv인스턴스의 멤버변수 channel의 값을 7로 변경.
  tv.channelDown(); //Tv인스천스의 메서드 channelDwon()을 호출.
  System.out.println("현재 채널은" + tv.channel + "입니다.");
 }
} 

① Tv tv;
Tv클래스 타입의 참조변수 tv를 선언.
메모리에 참조변수 tv를 위한 공간이 마련됨.
아직 인스턴스가 생성되지 않았으므로 이 참조변수로 할 수 있는 건 아무것도 없음.

② tv = new Tv();
연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성.
이때 멤버변수는 각 자료형에 해당하는 기본값으로 초기화.

③ tv.channel = 7;
참조변수 tv에 저장된 주소에 있는 인스턴스의 멤버변수 channel에 7을 저장.
인스턴스의 멤버변수(속성)을 사용하려면 '참조변수.멤버변수'와 같이 사용.
'.'이 표시가 참조한다는 표시.

④ tv.channelDown();
참조변수 tv가 참조하고 있는 Tv인스턴스의 channelDown메서드를 호출.
channelDown 메서드는 멤버변수 channel에 저장되어있는 값을 1 감소시킴.

     channelDown()에 의해서 channel의 값은 7에서 6이 됨.,l,

0개의 댓글