클래스 (컴퓨터 프로그래밍)
객체 지향 프로그래밍에서 객체 생성을 위해 변수와 메소드를 정의하는 틀
(클래스 (컴퓨터 과학)에서 넘어옴)
클래스(class, 어원: classification)는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀(template)이다. 객체를 정의하기 위한 메소드와 변수로 구성된다.[1][2]
템플릿을 사용하면 객체를 분류할 때 멤버의 자료형을 미리 정하지 않고 객체를 사용할 때 결정할 수 있다. 이를 통해 클래스나 변수의 중복 정의를 하지 않아도 되므로 효율적으로 코딩이 가능하다.
객체는 클래스로 규정된 인스턴스로서, 변수 대신 실제값을 가진다.
클래스는 OOP를 정의하는 개념 중 하나인데, 클래스에 대한 중요한 몇가지의 개념들은 다음과 같다.
클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대해 수퍼클래스가 된다.
서브클래스는 자신만의 메소드와 변수를 정의할 수도 있다.
이러한 클래스와 그 서브클래스 간의 구조를 "클래스 계층(hierarchy)"이라 한다.
C++에서 예
편집다음은 C++에서의 클래스 예이다.
#include <iostream>
using namespace std;
class A {
private:
int n;
public:
A(int n = 0); // 생성자 - 주로 객체의 상태(멤버변수 등)의 초기설정 등을 담당한다.
~A(); // 소멸자 - 객체 종료 시 필요한 조치를 취한다. 동적 변수 등의 제거를 하는 경우.
void SetN(int n);
int GetN();
};
A::A(int n) {
this->n = n;
}
A::~A() {
}
void A::SetN(int n) {
this->n = n;
return;
}
int A::GetN() {
return n;
}
int main() {
A a;
cout << a.GetN() << "\n";
a.SetN(10);
cout << a.GetN() << endl;
return 0;
}
결과:
0
10
C# 에서의 예
편집using System;
namespace Main //클래스를 정의하기 위해 네임스페이스를 지정한다.
{
class Program //클래스를 정의한다.
{
static void Main(string[] args) { //메소드를 지정한다. 이것은 메인메소드로 , 모든 C# 코드에 필수적이라고 할 수 있다.
Console.WriteLine("Hello World"); // Hello World를 콘솔에 출력한다.
}
}
}
결과 :
Hello World
같이 보기
편집- C++
- 표준 템플릿 라이브러리(STL)
각주
편집- ↑ Gamma 등. 1995, 14쪽.
- ↑ Bruce 2002, 2.1 Objects, classes, and object types, https://books.google.com/books?id=9NGWq3K1RwUC&pg=PA18.