접근 한정자
접근 한정자란
지금까지 사용했던 private, public 등 을 말한다.
이 접근 한정자는 말 그대로 접근을 제한하는 한정자이다.
객체 지향으로 따지자면 정보 은닉에 해당
public
|
클래스의 내부/외부 접근
|
|
protected
|
클래스 외부에서 접근 불가, 파생 클래스 가능
|
|
private
|
클래스 내부에서만 접근
|
|
internal
|
같은 어셈블리에 있는 코드만 public으로 접근
다른 어셈블리에서는 private 수준의 접근
|
|
protected internal
|
같은 어셈블리에 있는 코드만 protected로 접근
다른 어셈블리에서는 private 수준의 접근
|
|
private protected
|
같은 어셈블리에 있는 클래스에서
상속받은 클래스 내부만 접근
|
위에서 자주 사용하는 접근 한정자는 public 과 private 그리고 protected 일 것이다.
하나씩 살펴 보면
public 으로 지정된 변수는 외부에서도 접근이 가능하다
내부도 당연히 된다.
private나 protected는 당연히 안됄 것이다.
외부 접근이 불가능 하기 때문
내부에서는 접근이 가능
하지만 protected는 내부에서만 접근 가능한 private와는 다른 접근이 가능하다.
바로 파생 클래스에서 사용이 가능.
파생 클라스란 상속의 개념이 들어간다.
간단히 설명하면
파생 클래스에서 protected인 변수는 할당이 가능하지만 private 변수는 할당이 불가능
internal
protected internal
private protected
위 한정자는 잘 사용하진 않음.
간단히 정리하고 넘어가겠음.
private, public, protected 를 이해하였다면 쉽다.
internal 같은 영역에선 내부/외부 접근이 가능하지만 다른 영역에선 절대 불가능.
private영역이기 때문.
protected internal 같은 영역에선 내부와 파생 클래스가 아니면 접근이 불가능.
private protected 이건 좀 특별하다. C# 7.2버전 이상부터 쓸수 있음.
접근 제한은 파생 클래스만 사용이 가능.
'C#' 카테고리의 다른 글
C# 오버라이딩 (0) | 2022.06.03 |
---|---|
C# 상속 (0) | 2022.06.03 |
C# this (0) | 2022.06.02 |
C# 얕은 복사, 깊은 복사 (0) | 2022.06.02 |
C# 정적 필드, 메소드 (0) | 2022.06.01 |