본문 바로가기
* Web/Theory

객체지향 언어를 위한 필수 지식 : 객체(Object)와 클래스(Class) 개념

by codinguser 2020. 12. 30.

객체지향 언어를 위한 필수 지식 : 객체(Object)와 클래스(Class) 개념
객체와 클래스란?

 

 

 

객체지향 언어를 공부하다보면(C++, Java, Python 등..) 항상 나오는 개념이다.

 

객체와 클래스라는 개념은 항상 등장한다.

 

이 글은 객체와 클래스의 개념적인 "그림"을 그리기 위해 작성한 글이다.

 

 

 

 

 

객체(Object)란?


어렵게 생각하지말자

 

지금 모니터로 보고있는 PC이든, 핸드폰이든, 태블릿이든


사람, 자동차, 키보드, 마우스 등...

모든 것이 객체의 개념이다.
(이미지를 생각하면 좋다)

 

 

 

 

 

 

객체(Object)를 분해해보자



특성 + 행동으로 나누어지게 된다. 

이 2가지를 기억해야 한다.


사람 
ㄴ 특성 : 이름, 나이, 성별, 연락처, 거주 지역 등.. 
ㄴ 행동 : 걷기, 달리기, 등 


자동차 
ㄴ 특성 : 브랜드, 차종, 색상, 주행거리 등.. 
ㄴ 행동 : 전진하다, 후진하다, 와이퍼 작동하다, 급유하다 등.. 

 
은행 계좌정보
ㄴ 특성 : 예금주, 계좌번호, 잔액, 연락처 등... 
ㄴ 행동 : 예금하기, 인출하기, 송금하기 등...

 

 

 

 

 

컴퓨터 세계에서 객체는 어떻게 만들지?


바로 클래스라는 개념을 이용하여 만든다.

 

 

 




클래스(class)란 무엇인가?


: 객체들의 공통적인 특징과 행동을 모아 놓은 하나의 공장

 

 

 

 

같은 종류의 객체끼리는 특성과 행동이 같다.

아래의 예시를 보자.

 

 

ex) 

계좌번호 : 123-123-1234 
이름 : 김김김
잔액 : 111,111 
ㅡㅡㅡㅡㅡ 
예금한다. 
인출한다. 


계좌번호 : 222-222-2222 
이름 : 감감감
잔액 : 222,222 
ㅡㅡㅡㅡㅡ 
예금한다. 
인출한다. 


↓↓↓

(어차피 객체들의 똑같은 것들을 모아놓은 구조네?) 


은행 계좌 클래스 
ㅡㅡㅡㅡㅡㅡㅡㅡ 
계좌번호 
예금주 이름 
잔액 
ㅡㅡㅡㅡ 
예금한다. 
인출한다. 

 

 



그래서 이런 공통점들을 따로 뽑아서 정의하고, 그 정의를 클래스(class)라고 부른다.

즉 클래스는 그 클래스에 속하는 객체들의 공통된 특성과 행동을 모아놓은 하나의 공장이다.

그래서 객체지향 프로그래밍에서는 클래스의 코드를 작성해 놓고 아래와같이 클래스의 틀로 객체를 찍어내는 방법을 사용한다.

 

 

 

은행 계좌 클래스 
ㅡㅡㅡㅡㅡㅡㅡㅡ 
계좌번호 
예금주 이름 
잔액 
ㅡㅡㅡㅡ 
예금한다. 
인출한다. 

 

 

 

 

계좌번호 : 123-123-1234 
이름 : 김 김 김
잔액 : 111,111 
ㅡㅡㅡㅡㅡ 
예금한다. 
인출한다. 


계좌번호 : 222-222-2222 
이름 : 감감 감
잔액 : 222,222 
ㅡㅡㅡㅡㅡ 
예금한다. 
인출한다. 




 


결국 정리하자면...?



컴퓨터 세계에서 객체를 만들려면 클래스라는 개념을 이용해서 만들게 된다.
객체와 클래스는 서로 독립적인 개념이 아니라 컴퓨터 세계에서 필요한 객체를
클래스라는 틀로 만들어 내는 것이다.

댓글