클래스 (컴퓨터 과학)

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

클래스(class)는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀이다. 객체를 정의 하기 위한 상태(멤버변수)와 메서드(함수)로 구성된다.[1][2]

템플릿을 사용하면 객체를 클래스로 정의할 때 멤버의 자료형을 미리 정하지 않고 객체를 사용할 때 결정할 수 있다. 이를 통해 클래스나 멤버의 중복 정의를 하지 않아도 되므로 효율적으로 코딩이 가능하다.

객체는 클래스로 규정된 인스턴스로서, 변수 대신 실제값을 가진다.

클래스는 OOP를 정의하는 개념 중 하나인데, 클래스에 대한 중요한 몇가지의 개념들은 다음과 같다.

클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대해 수퍼클래스가 된다.

서브클래스는 자신만의 메소드와 변수를 정의할 수도 있다.

이러한 클래스와 그 서브클래스 간의 구조를 "클래스 계층(hierarchy)"이라 한다.

C++에서 예[편집]

다음은 C++에서의 클래스 예이다.

#include <iostream>
using namespace std;

class A {

   A(int n=0);  // 생성자 - 주로 객체의 상태(멤버변수 등)의 초기설정 등을 담당한다.
   ~A();        // 소멸자 - 객체 종료 시 필요한 조치를 취한다. 동적 변수 등의 제거를 하는 경우.
 
   void SetN(int n);
   int GetN();

private:
   int n;

};

A::A(int n=0) {
   this->n = n;
}

~A(){}

void SetN(int n) {
   this->n = n;
}

int GetN() {
   return n;
}

int main(void) {
   A a;
   cout << GetN() << endl;
   a.SetN(10);
   cout << GetN() << endl;

   return 0;
}

결과:

0
10

같이 보기[편집]

각주[편집]

  1. Gamma 외. 1995, 14쪽.
  2. Bruce 2002, 2.1 Objects, classes, and object types, Objects, classes, and object types - 구글 도서.