[ JAVA / 객체지향 ] 인스턴스 생성과 사용

2024. 1. 6. 16:55

 

인스턴스 생성과 사용

ㅇ 다시한번 인스턴스란

  • 인스턴스객체를 만들기 위해서 클래스를 통해 인스턴스화 된 친구를 이야기한다.
  • 아래의 그림을 보면 더 이해가 쉬워질 것이다.
인스턴스화

 

  • 위에서 보다시피 클래스를 인스턴스화 시켜서 인스턴스를 가상으로 하나 생성한다고 생각하면된다.

ㅇ Q1. 인스턴스는 어떻게 생성함?

  • 매우 간단하다. 대신에 중요하기 때문에 밑에서 크게 보겠다.
인스턴스 생성
  • 위의 클래스명을 과 참조변수명을 선언한 것은, 객체를 다루기 위해서 이다.
  • 또한 객체를 생성 후, 생성된 객체의 주소를 참조변수에 저장하게 된다.

 

  • 하지만 위와 같이 할 경우 와닿지 않는 경우도 있다.
  • 따라서 실제로 구현하게 된다면 다음과 같다.
  • 실제 예시를 t 라는 TV 리모콘을 가지고 TV객체를 불러온다 라고 생각하면 된다.
  • 이렇게 예시를 들면 아까 이야기를 했던 객체의 주소를 참조변수에 저장하게 된다라는 말이 이해가 갈 것이다.

ㅇ Q2. 인스턴스는 어떻게 사용함?

  • 방금전의 말했던 예시를 가지고 코드를 한번 봐보자
Tv t = new Tv();
t.channel = 7;
t.channelDown();
Sout(t.channel);

 

(마지막은 편의상 sout라고 표기를 했다.)

 

  • 이때 이 코드를 가지고 유추해볼 수 있는게 몇개가 있다.
  • t라는 리모콘을 가지고 새로운 TV 인스턴스 (객체) 를 생성했다.
  • 여기에서 t 에 존재하는 속성은 channel 이 있을것이고,
  • 메소드로는 channelDown 이라는 것도 있을것이라는 것이다.

 

💡 여기에서 조금 조심해야 하는 부분

 

 다음코드를 한번 봐보자

Tv t1 = new Tv();
TV t2 = new Tv();
t2 = t1;
t1.channel = 7;
sout(t1.channel);
sout(t2.channel);

 

  • 이렇게 됐을때 분명 3번째 라인에서 t1의 주소의 값을 t2에 넣었기 때문에 t2.channel 또한 동일하게 나올것이다.

 

 

※ 이 내용은 책 [자바의정석_기초편] 를 보고 정리한 내용입니다.

 

 

BELATED ARTICLES

more