접근제한자란
타입(클래스, 구조체, 인터페이스, 열거형, 대리자) 또는
그들의 멤버(변수, 프로퍼티, 생성자, 메서드)의
접근 권한을 지정하기 위해 사용
+ 접근한정자라고도 불림
public
어디에서나 접근할 수 있다.
private
해당 타입 내부에서만 접근 가능하다.
protected
해당 타입 내부와 자식 클래스에서 접근 가능하다.
(외부 어셈블리에서 해당 클래스를 상속받았으면, 접근이 가능함 - private protected와의 차이점)
internal
동일한 어셈블리 내에 있는 타입들이 접근 가능하다.
어셈블리: .NET 프레임워크에서 코드의 배포, 버전 관리, 및 실행을 관리하는 기본 단위.
- 일반적으로 컴파일된 코드와 해당 코드에 대한 메타데이터를 포함하는 단일한 파일로 구성
타입에서는 public과 internal만 사용
+
protected internal
C# 7.2 부터 지원
동일한 어셈블리에서 접근 가능,
해당 클래스를 상속받은 다른 어셈블리의 클래스에서 접근 가능
private protected
C# 7.2 부터 지원
동일한 어셈블리에서만, 해당 클래스를 상속받은 다른 클래스에서 접근 가능
요약
클래스나 인터페이스 같은 타입과 그들의 멤버의 접근 권한을 지정하기 위해 사용한다.
public은 어디서나 접근 가능하고 private은 해당 타입 내부에서만 접근 가능하다.
protected은 해당 타입의 내부와, 자식 클래스에서 접근이 가능하다.
'취준 > 기술면접' 카테고리의 다른 글
배열, List, ArrayList, Dictionary (0) | 2024.01.29 |
---|---|
가비지 컬렉터, 가비지 컬렉션 (0) | 2024.01.19 |
struct와 class (0) | 2024.01.17 |
ref와 out (C#) (1) | 2024.01.17 |
정수형과 부동소수점형, 2의 보수 (0) | 2024.01.13 |