주 메뉴 열기

클래스 (컴퓨터 프로그래밍)

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

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

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

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

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

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

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

C++에서 예편집

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

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 class A {
 6 
 7     private:
 8     
 9     	int n;
10 
11     public:
12     
13     	A(int n = 0);   // 생성자 - 주로 객체의 상태(멤버변수 등)의 초기설정 등을 담당한다.
14     	~A();           // 소멸자 - 객체 종료 시 필요한 조치를 취한다. 동적 변수 등의 제거를 하는 경우.
15     
16     	void SetN(int n);
17     
18     	int GetN();
19     	
20 };
21 
22 A::A(int n) {
23 	
24 	this->n = n;
25 	
26 }
27 
28 A::~A() {
29 
30 }
31 
32 void A::SetN(int n) {
33 	
34 	this->n = n;
35 
36 	return;
37 }
38 
39 int A::GetN() {
40 	
41 	return n;
42 }
43 
44 int main() {
45 
46 	A a;
47 
48 	cout << a.GetN() << "\n";
49 
50 	a.SetN(10);
51 
52 	cout << a.GetN() << endl;
53 
54 	return 0;
55 }

결과:

0
10

같이 보기편집

각주편집

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