Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 접근 지정자(Access Specifier)의 목적과 5가지 종류 완벽 정리

접근 지정자(Access Specifier)는 클래스 멤버인 변수와 함수의 범위(scope)가시성(visibility)을 정의하는 데 사용됩니다. 즉, 어떤 멤버를 외부에 공개하고 어떤 멤버를 숨길지 결정함으로써 코드의 보안성과 캡슐화를 높일 수 있습니다.

C#에서는 다음과 같은 다섯 가지 접근 지정자를 지원합니다.

  • Public
  • Private
  • Protected
  • Internal
  • Protected Internal

지금부터 각 접근 지정자가 어떻게 동작하는지 하나씩 자세히 살펴보겠습니다.

1. Public 접근 지정자

Public은 클래스가 자신의 멤버 변수와 멤버 함수를 다른 함수 및 객체에 자유롭게 공개할 수 있도록 허용합니다. 접근 제한이 전혀 없어 프로그램 내 어디서든 해당 멤버에 접근할 수 있는, 가장 개방적인 접근 수준입니다.

2. Private 접근 지정자

Private은 클래스가 자신의 멤버 변수와 멤버 함수를 외부의 다른 함수나 객체로부터 숨기도록 합니다. 오직 같은 클래스 내부의 함수만 private 멤버에 접근할 수 있으며, 이를 통해 데이터 은닉(data hiding)과 캡슐화를 실현할 수 있습니다.

3. Protected 접근 지정자

Protected는 파생 클래스(자식 클래스)가 기반 클래스(부모 클래스)의 멤버 변수와 멤버 함수에 접근할 수 있도록 허용합니다. 외부에는 멤버를 숨기면서도 상속 관계에서는 자유롭게 사용할 수 있어야 할 때 유용합니다.

4. Internal 접근 지정자

Internal은 클래스가 자신의 멤버 변수와 멤버 함수를 현재 어셈블리(assembly), 즉 동일한 프로젝트 내의 다른 함수 및 객체에 공개하도록 합니다. 어셈블리 외부에서는 접근할 수 없으므로, 라이브러리나 모듈 단위로 코드를 관리할 때 유용합니다.

5. Protected Internal 접근 지정자

Protected Internal은 protected와 internal의 특성을 결합한 접근 수준입니다. 같은 어셈블리 내의 모든 코드에서 접근할 수 있으며, 어셈블리가 다르더라도 해당 클래스를 상속받은 파생 클래스라면 접근이 허용됩니다. 반면, 그 외의 다른 클래스 객체나 함수로부터는 멤버가 숨겨집니다.