본문 바로가기

컴퓨터

3-2. 클래스와 객체

데이터 추상화(Data Abstraction)

현실세계의 사물을 데이터적인 측면과 기능적 측면을 통해서 정의하는 것이 데이터 추상화이다. 여기서 데이터라는 용어는 사물의 데이터적인 측면(변수)과 기능적인 측면(함수)을 동시에 일컫는 것이다.

클래스(Class)

추상화된 데이터(데이터적 측면 + 기능적 측면)를 가지고 프로그램 코드로 옮겨 자료형을 정의하게 되는데 이때 사용되는 것이 클래스이다. 이 행위를 "클래스 화한다"라고 표현한다.

객체(Object)

클래스를 정의한다는 것은 자료형을 하나 정의하는 것이다. 자료형을 기반으로 변수를 생성하는데 클래스를 이용해서 정의된 자료형의 변수는 객체(object)라는 표현을 쓴다. 그리고 클래스를 기반으로 객체를 생성하는 것을 가리켜 "인스턴스화(instantiation)한다" 라는 표현을 사용한다. 물론 "객체화한다"라는 표현도 나쁘지 않다. 참고로 객체(object)를 가리켜 인스턴스(instance)라고도 표현한다. 사실 이 둘의 단어적 의미에는 아주 미묘한 차이가 있는데, 객체지향 프로그래밍에서는 이 둘을 동일시하는 경향이 강하다. 

'컴퓨터' 카테고리의 다른 글

3-4 멤버 함수의 외부 정의  (0) 2019.04.07
3-3. 클래스 멤버의 접근 제어  (0) 2019.04.07
2-7. new & delete  (0) 2019.04.06
2-5 레퍼런스를 이용한 성능의 향상  (0) 2019.04.06
2-4. 레퍼런스와 함수  (0) 2019.04.05