C# 클래스란 무엇인가?
C#에서 클래스(class)란 하나의 데이터 타입을 만들기 위한 설계도(blueprint)입니다. 이 설계도를 바탕으로 실제로 생성된 것을 객체(object)라고 하며, 객체는 곧 클래스의 인스턴스(instance)입니다. 또한 클래스를 구성하는 메서드와 변수들은 통틀어 클래스의 멤버(member)라고 부릅니다.
클래스 정의의 일반적인 형태
클래스 정의는 class 키워드로 시작하여 그 뒤에 클래스 이름이 붙고, 중괄호 { }로 묶인 클래스 본문(body)으로 구성됩니다. 클래스 정의의 일반적인 형식은 다음과 같습니다.
<접근 지정자> class 클래스_이름 {
// 멤버 변수
<접근 지정자> <데이터 타입> 변수1;
<접근 지정자> <데이터 타입> 변수2;
...
<접근 지정자> <데이터 타입> 변수N;
// 멤버 메서드
<접근 지정자> <반환 타입> 메서드1(매개변수_목록) {
// 메서드 본문
}
<접근 지정자> <반환 타입> 메서드2(매개변수_목록) {
// 메서드 본문
}
...
<접근 지정자> <반환 타입> 메서드N(매개변수_목록) {
// 메서드 본문
}
}
클래스의 핵심 포인트
접근 지정자(Access Specifier): 멤버뿐 아니라 클래스 자체에 대한 접근 규칙을 결정합니다. 접근 지정자를 명시하지 않으면 클래스 타입의 기본 접근 수준은
internal이 되고, 멤버의 기본 접근 수준은private입니다.데이터 타입과 반환 타입: 데이터 타입은 변수의 자료형을 지정하며, 반환 타입(return type)은 메서드가 돌려주는 데이터의 자료형을 나타냅니다. 반환값이 없는 경우에는
void를 사용합니다.점(.) 연산자: 클래스 멤버에 접근할 때는 점(.) 연산자를 사용합니다. 점 연산자는 객체의 이름과 멤버의 이름을 연결해 주는 역할을 합니다.
점 연산자 활용 예시
실제 코드에서는 아래와 같이 객체를 생성한 뒤 점 연산자를 통해 멤버 변수에 값을 저장하거나 멤버 메서드를 호출할 수 있습니다.
Box box1 = new Box(); // 객체(인스턴스) 생성 box1.length = 10.0; // 점(.) 연산자로 멤버 변수 접근 box1.getVolume(); // 점(.) 연산자로 멤버 메서드 호출
이처럼 클래스는 관련된 데이터와 동작을 하나로 묶어 관리할 수 있게 해주는 C# 객체지향 프로그래밍(OOP)의 핵심 요소입니다. 클래스 개념을 확실히 익혀두면 이후 배우게 될 상속, 캡슐화, 다형성 등 고급 개념을 이해하는 데 큰 도움이 됩니다.