최상단 광고

2012년 4월 16일 월요일

[C++강좌] - 3-2. 객체에 대하여

드디어 Class강좌를 쓰고 있자니 마음이 설레네요!
언제나 화이팅!

*이 강좌는 C언어를 끝냈다는 가정하에 실시합니다.

┌───────────────┐
---앞으로의 목차---
3-2. 객체에 대하여
3-3. 접근제어
3-4. 멤버함수의 외부정의
└───────────────┘

<지난 강좌를 살펴보고 와주세요 !! : http://blog.naver.com/owndks98o/120157307983 >

3-2. 객체에 대하여
이번시간에는 객체에 대한 이모저모를 알아보겠습니다.
어쩌면 상당히 따분한 이론수업이 될 수도 있으나, 객체의 기본을 다루는 꼭 필요한 부분이니
잘 익혀 두시기를 바랍니다.

먼저 데이터 추상화(Data Abstraction) 를 알아보도록 하겠습니다.
원래 지향하는 바라면, 제가 비유까지 해야 하나 워낙 난해한 부분이라 이 책의 내용을 인용하겠습니다.
(전 C++을 "열혈강의 C++프로그래밍"과 "누드 C++"에서 참고하였습니다.)

여러인디언이 있습니다. 문제는 그중에 단 한명만이 코끼리를 본적이 있기에, 그 인디언은 다른 인디언들에게 코끼리의 모양에 대해 설명해 주기 시작합니다.
"코끼리는 말이야. 일단 발이 네 개야. 그리고 코가 하나 있는데, 그 코의 길이가 한 5미터 정도는 되지. 그리고 그 코를 이용해서 목욕을 하기도 하고, 또 물건을 집기도 해. 아! 크기는 말이야. 글쎄 무개로 따지면 1톤은 족히 넘을 거야"

이 설명을 들은 인디언들은 이 코끼리를 머릿속에 정리할것입니다. 이렇게 말이죠!
  1. 발이 4개
  2. 코의 길이가 5미터 정도
  3. 몸무게 1톤정도
  4. 코를 이용하여 목욕
  5. 코를 이용하여 물건을 집음
이것을 프로그래밍에 비유하면 1,2,3 번은 데이터 적인 측면, 4,5번은 기능적인 측면입니다.
이렇듯,
"현실세계의 사물을 데이터적인 측면과 기능적 측면을 통해서 정의하는것"
이 데이터추상화(Data Abstraction)이라고 합니다.

그럼 이제 하나의 객체(Object)에 대해 프로그래밍에서 사용하기까지의 과정에 대한 용어를 알아보죠.

예를 들어, 먼저 "사람"이란 것을 프로그램 상에 옮길때에, 데이터 추상화를 하는 과정을 "추상화" 라고 합니다.
(갑자기 "사람"이란 단어가 너무나도 어색하게 느껴지는 군요;;)

 

그리고, 이 추상화한 것을 자료형으로 정의하는 것을 "클래스화"라고 합니다.

이것이 일반적으로 클래스를 정의할때에 사용되는 용어입니다.

클래스를 정의한다는 것은 일반적인 자료형(int,char,...)등을 정의하는 것과 같습니다.
따라서 클래스를 사용할떄에 클래스를 선언해줄 필요가 있습니다.
따라서, 이렇듯 클래스를 선언해주는 것을 "인스턴스화(instantiation)"한다 라고 표현합니다.


이번시간에는 여러 클래스에 대한 용어를 알아보았습니다.
다음강에서 만나도록 합시다~~!!

댓글 없음: