[c#] 클래스의 캡슐화
C#은 객체지향 프로그래밍 언어로, 캡슐화는 그 중요한 특징 중 하나입니다. 캡슐화는 데이터와 함수를 하나로 묶어 외부에서의 직접적인 접근을 제한하는 것을 말합니다. 이를 통해 데이터의 무결성을 보장하고 객체의 상태를 안전하게 유지할 수 있습니다.
캡슐화는 접근 제한자 (access modifier)를 통해 구현됩니다. C#에서는 다음과 같은 네 가지 접근 제한자를 제공합니다.
- public: 어떤 클래스나 메서드에서든 접근 가능
- private: 정의한 클래스 내에서만 접근 가능
- protected: 상속받은 클래스 내에서 접근 가능
- internal: 같은 어셈블리 내에서만 접근 가능
다음은 캡슐화가 적용된 간단한 C# 클래스의 예시입니다.
public class Car
{
private string _make;
private string _model;
private int _year;
public string Make
{
get { return _make; }
set { _make = value; }
}
public string Model
{
get { return _model; }
set { _model = value; }
}
public int Year
{
get { return _year; }
set
{
if (value > 1900)
{
_year = value;
}
else
{
throw new Exception("Invalid year");
}
}
}
}
위 예시에서 Make
, Model
, Year
속성은 외부에서 접근 가능하지만, _make
, _model
, _year
필드는 private
로 선언되어 외부에서의 직접적인 접근을 제한합니다.
캡슐화를 통해 클래스 내부의 데이터를 보호하고, 의도치 않은 변경으로부터 객체를 보호할 수 있습니다. 이를 통해 안정적이고 유지보수가 용이한 프로그램을 작성할 수 있습니다.
자세한 내용은 Microsoft C# 공식 문서를 참고하세요.