[자바의 정석] (Ch6. 객체지향개념) 클래스와 객체
클래스, 객체
클래스의 사전적 정의
- 클래스의 정의: 클래스란 객체를 정의해 놓은 것
- 클래스의 용도: 클래스는 객체를 생성하는 데 사용된다
객체의 사전적 정의
- 객체의 정의: 실제로 존재하는 것. 사물 또는 개념
- 객체의 용도: 객체가 가지고 있는 기능과 속성에 따라 다르다.
강사님이 생각하기엔 설계도-제품 비유가 가장 적합한 비유 같다고 하신다.
TV 설계도를 만들어놓으면 TV를 만들기 쉽다. <-> TV를 만들기 위해 TV 설계도를 사용한다.
객체의 구성요소 - 속성과 기능
객체지향 개념은 군사적 목적으로 처음 등장. 현실 세계를 어떻게 하면 컴퓨터 안으로 옮겨 넣을까.. 를 고민했다.
예를 들면 미사일을 쏘기 전에 미리 시뮬레이션할 수도 있고.. 즉, 하드웨어를 어떻게 소프트웨어로 표현할까를 고민한 거다.
실물 라디오가 곰플레이어 등의 SW로 바뀌면서 컴퓨터 안으로 들어온 것도 HW가 SW화 되어 컴퓨터 안으로 들어온 예시이다.
SW화 한다는 것은 곧 코드를 이용해서 현실의 것을 디지털상의 프로그램으로 만든다는 것을 의미한다.
SW화 할 현실의 대상이 TV라고 하면, TV의 속성을 변수로 TV의 기능을 메서드로 표현하였다.
객체 (TV) = 속성 (변수) + 기능 (메서드)
속성과 기능을 분석하여, 오른쪽과 같이 TV의 설계도(클래스)를 만든다
- 일반적으로 속성은 명사, 기능은 동사에 해당한다. (내 생각)
객체와 인스턴스
인스턴스는 객체와 거의 같은 말이다.
- 객체: 모든 인스턴스를 대표하는 일반적 용어
- 인스턴스: 특정 클래스로부터 생성된 객체 (예: TV 인스턴스)
인간(객체) > 강동원 (인스턴스)
인스턴스화
설계도(클래스)를 만들었다면, 이제 이걸 가지고 TV를 만들어내야 할 거 아니야?
설계도를 가지고 만들어낸 각각의 개별 TV가 바로 인스턴스이다.
그리고 이 과정을 인스턴스화라고 한다.
Q. 클래스가 왜 필요한가?
A. 객체를 생성하기 위해
설계도는 제품을 만들기 위해 필요하다. 설계도를 만들어 놓으면 그다음부터 제품을 만들기 편해지니깐.. 상식적인 이 내용과 똑같다.
Q. 객체가 왜 필요한가?
A. 객체를 사용하기 위해.
우리가 제품이 필요하니까 사용하잖아? 마찬가지임.
Q. 객체를 왜 사용하는가?
A. 객체가 가진 속성과 기능을 사용하기 위함이다.
즉, 변수와 이에 대한 메서드를 사용하기 위해서이다.