[ JAVA / 객체지향 ] 인스턴스 생성과 사용
2024. 1. 6. 16:55
![](https://blog.kakaocdn.net/dn/85kWh/btsC1qO5RIN/wHeMEPr5HfIiuogwXyzazK/img.png)
ㅇ 다시한번 인스턴스란
- 인스턴스는 객체를 만들기 위해서 클래스를 통해 인스턴스화 된 친구를 이야기한다.
- 아래의 그림을 보면 더 이해가 쉬워질 것이다.
![](https://blog.kakaocdn.net/dn/bSil4l/btsC6VAjOsR/bt96QsQOeogdkh2hwdiX50/img.png)
- 위에서 보다시피 클래스를 인스턴스화 시켜서 인스턴스를 가상으로 하나 생성한다고 생각하면된다.
ㅇ Q1. 인스턴스는 어떻게 생성함?
- 매우 간단하다. 대신에 중요하기 때문에 밑에서 크게 보겠다.
![](https://blog.kakaocdn.net/dn/sbxWD/btsC76hghp7/Cy0NriicdSzcz7pmKsi0K0/img.png)
- 위의 클래스명을 과 참조변수명을 선언한 것은, 객체를 다루기 위해서 이다.
- 또한 객체를 생성 후, 생성된 객체의 주소를 참조변수에 저장하게 된다.
- 하지만 위와 같이 할 경우 와닿지 않는 경우도 있다.
- 따라서 실제로 구현하게 된다면 다음과 같다.
![](https://blog.kakaocdn.net/dn/Kcav5/btsC89SjMSN/BkyKtw3evkLwvpbUd2TjJ1/img.png)
- 실제 예시를 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 또한 동일하게 나올것이다.
※ 이 내용은 책 [자바의정석_기초편] 를 보고 정리한 내용입니다.
'STUDY > JAVA' 카테고리의 다른 글
[JAVA / 객체지향] 클래스 변수 / 인스턴스 변수 (1) | 2024.01.10 |
---|---|
[JAVA / 객체지향] 선언위치 변수종류 (0) | 2024.01.08 |
[JAVA / 객체지향] 클래스의 정의 (0) | 2024.01.08 |
[JAVA / 객체지향] 객체배열 (0) | 2024.01.08 |
[JAVA/객체지향] 클래스와 객체 (0) | 2024.01.06 |