반응형
클래스와 객체
클래스란?
객체를 정의해 놓은 것
객체란?
사물 또는 개념 등등.. 실제로 존재하는 것
클래스와 객체를 비유할 때 붕어빵 기계(클래스)와 붕어빵(객체)으로 비유를 많이 한다.
엄밀히 말하면 틀린 비유이지만, 초보자에게 우선은 이 정도로만 알고 있는 것으로 충분하다.
붕어빵 기계는 붕어빵을 만들기 위해 있는 것이다.
즉, 클래스는 객체를 만들기 위해 있는 것이다.
객체의 구성요소 : 속성, 기능
객체 = 속성(변수) + 기능(메서드)
TV를 예로 들어보자.
요즘에는 TV를 노트북으로도 볼 수 있다.
TV라는 하드웨어를 소프트웨어로 바꿔서 노트북으로 볼 수 있는 것이다.
이 과정에서 객체지향 프로그램이 필요하다.
그렇다면 이때의 객체에서는 어떤 속성과 어떤 기능이 필요할까?
<TV 클래스> 속성: 크기, 높이, 너비, 색상, 볼륨, 채널 등 기능: 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기, 화면 밝기 조절 등 |
위에 나온 붕어빵 예시를 TV로 바꿔보면 아래와 같다.
TV 설계도는 TV를 만들기 위해 있는 것이다.
즉, TV 클래스는 TV의 속성과 기능을 구현하기 위해 있는 것이다.
객체와 인스턴스
객체와 인스턴스는 거의 비슷하다.
인스턴스가 객체의 복제본 같은 거이긴 한데..
초보자는 그냥 객체와 인스턴스는 거의 같은 거라고 기억하면 된다.
클래스를 인스턴스화하면 인스턴스가 되고, 이 인스턴스가 객체이다.
(비유)
우리한테 필요한 건 TV 설계도(클래스)가 아니라 TV(인스턴스, 객체)이므로,
TV 설계도를 인스턴스화해서 TV를 만들어야지 우리가 TV를 사용할 수 있다.
클래스와 객체 결론
클래스는 왜 필요한가? (=TV 설계도는 왜 필요한가?)
객체를 생성하는 데 사용한다. (=TV를 만드는 데 사용한다.)
객체는 왜 필요한가? (=TV는 왜 필요한가?)
객체를 사용하기 위해. (=TV를 사용하기 위해.)
객체를 사용한다는 것은? (=TV를 사용한다는 것은?)
객체의 속성, 기능을 이용하려고 (=TV의 채널 변경, 볼륨 조절 등의 기능을 이용하려고)
(출처: 유튜브 남궁성의 정석코딩)
반응형
'Java' 카테고리의 다른 글
[Java, 객체지향] 선언위치에 따른 변수 종류 (0) | 2021.08.06 |
---|---|
[Java, 객체지향] 변수 → 배열 → 구조체 → 클래스 (0) | 2021.08.06 |
[Java, 객체지향] 객체 배열 (0) | 2021.08.06 |
[Java, 객체지향] 객체의 생성과 사용 (0) | 2021.08.06 |
[Java] 윤년 여부 판단, 유효 날짜 판단 코드 (0) | 2021.08.05 |