C# 클래스는 필드, 속성, 메서드, 생성자, 이벤트 등의 다양한 구성 요소를 가질 수 있습니다. 이번 포스팅에서는 C#클래스의 구성에 대해서 정리했습니다.
필드(Fields)
필드는 클래스에서 사용할 데이터를 저장하는 데 사용됩니다. 필드는 다른 클래스 멤버에서 사용될 수 있으며, 클래스의 인스턴스를 생성할 때 초기화됩니다.
class MyClass
{
int myField;
}
속성(Properties)
속성은 클래스의 필드 값을 가져오거나 설정하기 위한 메커니즘을 제공합니다. 속성은 필드를 캡슐화하여 외부에서 직접 필드 값을 변경하지 못하도록 합니다.
class MyClass
{
private int myField;
public int MyProperty
{
get { return myField; }
set { myField = value; }
}
}
메서드(Methods)
메서드는 클래스에서 수행할 수 있는 작업을 나타냅니다. 메서드는 일련의 문장으로 구성되며, 클래스의 인스턴스를 사용하여 호출됩니다.
class MyClass
{
void MyMethod()
{
// 메서드 내용
}
}
생성자(Constructors)
생성자는 클래스의 인스턴스가 생성될 때 호출되는 특별한 메서드입니다. 생성자는 클래스의 필드를 초기화하거나 클래스 인스턴스를 사용하기 전에 필요한 작업을 수행할 수 있습니다.
class MyClass
{
public MyClass(int myValue)
{
myField = myValue;
}
}
이벤트(Events)
이벤트는 클래스에서 발생하는 특정 동작을 다른 클래스에서 수신할 수 있도록 하는 메커니즘을 제공합니다. 이벤트는 일반적으로 이벤트 처리기라고 불리는 메서드와 연결됩니다.
class MyClass
{
public delegate void MyEventHandler();
public event MyEventHandler MyEvent;
public void OnMyEvent()
{
MyEvent?.Invoke();
}
}
중첩 클래스(Nested Classes)
중첩 클래스는 클래스 내부에 선언된 클래스입니다. 중첩 클래스는 외부 클래스와 동일한 범위를 가지며, 외부 클래스의 모든 멤버에 접근할 수 있습니다.
class MyClass
{
public class MyNestedClass
{
void MyNestedMethod()
{
// 중첩 클래스 내용
}
}
}
중첩 구조체(Nested Structs)
중첩 구조체는 클래스 내부에 선언된 구조체입니다. 중첩 구조체는 외부 클래스와 동일한 범위를 가지며, 외부 클래스의 모든 멤버에 접근할 수 있습니다.
class MyClass
{
public struct MyNestedStruct
{
void MyNestedMethod()
{
// 중첩 구조체 내용
}
}
}
인덱서(Indexers)
인덱서는 객체의 요소에 접근하는 데 사용되는 특별한 속성입니다. 인덱서는 객체 내의 배열과 유사한 방식으로 작동하며, 객체의 요소에 대한 값을 반환하거나 설정합니다.
class MyClass
{
private int[] myArray = new int[10];
public int this[int index]
{
get { return myArray[index]; }
set { myArray[index] = value; }
}
}
위의 예제에서 MyClass에는 myArray라는 배열 필드가 있으며, this 인덱서를 사용하여 배열 요소에 접근할 수 있습니다.
정적 멤버(Static Members)
정적 멤버는 클래스 인스턴스 없이 호출할 수 있는 멤버입니다. 정적 멤버는 static 키워드를 사용하여 정의됩니다. 정적 필드, 메서드, 이벤트, 속성 등이 있습니다.
class MyClass
{
public static int myStaticField;
public static void MyStaticMethod()
{
// 정적 메서드 내용
}
public static event EventHandler MyStaticEvent;
public static int MyStaticProperty
{
get { return myStaticField; }
set { myStaticField = value; }
}
}
위의 예제에서 myStaticField, MyStaticMethod, MyStaticEvent, MyStaticProperty는 모두 static 키워드로 정의된 정적 멤버입니다. 이러한 멤버는 클래스 인스턴스 없이 호출할 수 있으며, MyClass.myStaticField, MyClass.MyStaticMethod()와 같은 형식으로 호출됩니다.
C# 클래스는 이러한 다양한 멤버를 사용하여 객체의 동작을 정의하고 확장할 수 있습니다. 클래스 멤버는 객체지향 프로그래밍의 기본 개념인 캡슐화, 상속, 다형성 등을 구현하는 데 사용됩니다.
'Program Language > C#' 카테고리의 다른 글
Part2. C# 기초 다지기(12. 인수 전달 방법) (13) | 2023.03.02 |
---|---|
Part2. C# 기초다지기(11. 메서드 오버로딩) (16) | 2023.02.28 |
Part2. C# 기초 다지기(9. 클래스와 구조체) (21) | 2023.02.23 |
Part2. C# 기초 다지기(8. 버블 정렬) (16) | 2023.02.22 |
Part2. C# 기초 다지기(7. 선형탐색과 이진탐색) (18) | 2023.02.17 |
댓글