C#

C# 접근 한정자

KJaebee 2022. 6. 2. 02:25

접근 한정자

접근 한정자란

지금까지 사용했던 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