반응형

접근 제한자(Access Modifier)란 무엇인가?

우리나라에서는 접근 제한자 또는 접근 한정자라고 부르는 거 같다. 정리해 보자면 접근 제한자는 클래스, 필드, 메소드 및 속성에 대한 접근 수준을 설정하는 데 사용된다. 아래 예시를 살펴보자.

예시1:

public string color;

예시1에서 public을 접근 제한자라고 한다. 가장 앞

C#의 접근 제한자

접근 제한자 설명
public 외부 클래스를 포함한 모든 클래스에서 접근을 허용함.
private 동일한 클래스 내에서만 접근을 허용함.
protected 동일한 클래스 내에서 또는 해당 클래스에서 상속된 클래스에서 접근을 허용함.
internal 자체 어셈블리 내에서만 접근을 허용함. 다른 어셈블리에서는 없음.

 

private protectedprotected internal처럼 조합하여 사용하는 경우도 있다. protectedinternal에 대해서는 나도 사용해 본 적이 없다. 추후에 다루게 된다면 다시 한번 정리해 보도록 하겠다.

Private Modifier(비공개 제한자)

private를 사용하여 필드를 선언하면 동일한 클래스 내에서만 접근할 수 있다.

예시2:

class Car
{
        private string model = "Mustang";

      static void Main(string[] args)
    {
            Car myObj = new Car();
        Console.WriteLine(myObj.model);
    }
}

// 출력 : Mustang

예시3:

class Car
{
  private string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

model 변수는 Car 클래스 내부에서 private로 선언되었다. 그런데 Program 클래스에서 접근을 하려고 하는 경우 다음과 같은 에러가 발생한다.

private를 사용했기 때문에 외부 클래스에서 접근할 수 없다.

접근 제한자를 사용하여 클래스와 멤버의 접근을 제어함으로써 코드의 안정성을 높일 수 있다.

반응형

+ Recent posts