Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘
- 개발일지
- lower_bound
- 유한상태기계
- 인프런
- 안드로이드
- 게임개발공모전
- 유니티
- 재귀
- 백준
- DFS
- unity
- UI 자동화
- BFS
- binary_search
- 너비우선탐색
- c++
- upper_bound
- unreal
- 이분탐색
- fsm
- 프로그래머스
- 구현
- 게임개발
- 시리얼라이제이션
- c#
- 이득우
- 언리얼
- 운영체제
- 웅진씽크빅
Archives
- Today
- Total
초고교급 희망
[C#] 접근 제한자 본문
728x90
접근 제한자
public | 아무나 다 사용할 수 있도록 한다. 클래스 내부 혹은 파생 클래스 외부에서도 클래스 멤버들에 접근이 가능하다. |
private | 이 private을 포함하는 클래스 내에서만 접근이 가능하다. 파생 클래스와 같은 클래스 외부에서는 이 접근 제한자로 되어있는 클래스 멤버에 접근할 수 없다. |
protected | 기본적으로 클래스 내부와 파생 클래스들 간에만 이 클래스 멤버를 사용할 수 있다. 파생 클래스라는 말은 상속 관계를 통해서 파생된 클래스라는 뜻으로, 상속 관계를 통해서도 해당 클래스 멤버를 이용할 수 있도록 하려는 의도를 가진다. |
internal | 이는 동일 어셈블리 내에서 접근이 가능하도록 하는 경우를 뜻한다. |
protected internal | protected 혹은 internal한 접근 제한자라는 의미이다. 동일 프로그램 내에서 혹은 해당 파생 클래스에서 해당 클래스 멤버를 이용할 수 있다는 의미를 가진다. |
예시
public
class Class01
{
public int i = 0;
}
Class01의 공개된 멤버 변수를 Class02에서는 자유로이 접근해 사용할 수 있다.
class Class02
{
public static void Main()
{
Class01 c = new Class01();
c.i = 1000;
System.Console.WriteLine("Class01.i = {0}", c.i);
}
}
기본 접근 제한자
접근 제한자는 클래스 멤버에 명시하게 되는데, 이러한 접근 제한자를 명시하지 않는 다면, 기본 값으로 접근 제한자가 명시된다. 접근 제한자는 protected internal을 제외하고는 하나 이상의 접근 제어자들을 중복해서 선언하는 것은 오류이다.
아래 표는 각 클래스 멤버의 기본 접근 제한자와 허용되는 접근 제한자들을 정리한 것이다.
클래스 멤버 | 기본 접근 제한자 | 허용 접근 제한자 |
enum | public | 없음 |
class | private | public protected internal private protected internal |
interface | public | 없음 |
struct | private | public internal private |
만일에 기본 접근 제한자가 아닌 다른 접근 제한자를 적용하기 위해서는 클래스 멤버에 이 접근 제한자를 명시해야만 한다.
728x90
'Game > C#' 카테고리의 다른 글
[C#] Partial 클래스 (0) | 2023.07.15 |
---|---|
[C#] this 연산자 (0) | 2022.07.22 |
[C#] Dictionary <TKey, TValue> 클래스 (0) | 2022.07.20 |