본문 바로가기
언어(C, C++, C#)

[C#] 접근 제한자(public, private, protected, internal 등)

by 적용1 2024. 11. 6.
728x90

접근 제한자란, 클래스, 메서드, 속성 등에 대한 접근 권한을 사용하는 데 사용된다.

public

  • 모든 외부 클래스에서 접근이 가능하다.

private

  • 해당 클래스 내에서만 접근이 가능하다.
  • 외부에서 접근하면 안되는 내부 로직이나 데이터에 사용된다.

protected

  • 해당 클래스와 상속받은 클래스에서만 접근이 가능하다.
  • 상속받은 클래스에서는 접근해야 하지만 외부에서는 접근하면 안될 때 사용된다.

internal

  • 같은 어셈블리(프로젝트) 내에서는 public으로 작동하게 되지만, 다른 어셈블리(프로젝트)에서는 private으로 작동하게 되어 접근할 수 없게 된다.
  • 클래스 서두에서 접근 한정자를 생략한 것은 internal을 생략한 것이다. 즉 internal이 디폴트이다.

protected internal

  • 같은 어셈블리(프로젝트) 내에서는 protected로 작동하고, 다른 어셈블리에 대해서는 private으로 작동한다.

private protected

  • 같은 어셈블리(프로젝트) 내에서 상속받은 클래스에서만 접근이 가능하다.
  • protected는 다른 어셈블리에서 상속받아 접근이 가능하므로 이를 제한하기 위해 사용한다.

 

728x90