[C#] 접근 제한자(Access Modifier)

Running boy·2023년 8월 6일
0

컴퓨터 공학

목록 보기
4/36

접근 제한자의 특징

일반 클래스 정의는 public, internal만 허용하지만 중첩 클래스(클래스 내부의 클래스) 정의는 모든 접근 제한자를 허용한다.

클래스의 멤버 역시 모든 접근 제한자를 허용한다.

단 추상, 가상 메서드는 private으로 설정할 수 없다. 상속과 재정의를 전제로 생긴 기능인데 private으로 설정하면 자식 클래스에서 접근할 수 없기 때문이다.

접근 제한자를 명시하지 않을 경우
1. 클래스 정의: internal
2. 중첩 클래스 정의: private
3. 클래스 멤버 정의: private


접근 제한자 종류

private

클래스 내부에서만 접근이 가능하다.

protected

클래스 내부 혹은 파생 클래스에서만 접근이 가능하다.

public

어디서든 접근이 가능하다.

internal

동일한 어셈블리 내에서만 접근이 가능하다.

동일한 어셈블리에 한해서는 public과 동일하다.

internal protected

internal || protected

private protected

internal && protected

private이 붙었지만 전혀 private과 관련이 없다.

C# 7.2부터 지원한다.

profile
Runner's high를 목표로

0개의 댓글