2022. 10. 29. 18:23ㆍ언어/C#
액세스 한정자, 접근 제한자 , 접근 한정자라고 불리우며, 해당 코드를 어디까지 접근 할 수 있도록 할 것인지 한정 짓는 거라고 생각하면된다. 이 접근 제한을 왜 걸어야 할까. 개발자 입장에서 보면 접근 할 수 있는 범위에 따라 코드의 분류하는 것이 좋다. 클래스가 가지고 있는 변수나 함수가 많아질 경우 가독성도 해칠 수 있고, 어떤게 외부에서 써야하는 함수인지 직접 찾아봐야한다. 그렇다고 내용이 복잡하지 않고 4가지 정도만 알면된다.
접근 사용범위가 좁은 것부터 순서대로 나열하면 private, protected, internal, public 순이다.
제한자가 사용되는 위치는 이와같고, 만약 보이지 않는다면 private로 되어 있는 것이다.
[접근 제한자] Class A
{
[접근 제한자] int Apple;
[접근 제한자] void Counting()
{
}
}
1. private
자신의 클래스 내부에서만 사용할 수 있다. 가장 사용범위가 좁으면서, 접근 제한자를 선언하지 않으면 자동적으로 private로 변경된다.
2. protected
부모 클래스와 자식 클래스 내부까지 사용할 수 있다. protected를 알기전에 상속의 개념을 알아야 하는데 아주 간단히 설명을 하면 A라는 클래스의 정보를 이어받은 B클래스가 있다. 여기서 A클래스를 부모클래스, B클래스를 자식 클래스라고 하는데 사람이 부모의 유전을 상속받는 행위가 클래스에서도 비슷하게 일어나서 이렇게 부른다. 즉 외부적으로는 막고 싶은데 나와 내 자식까지만 공유하려할 때 해당 제한자를 이용한다.
3. internal
자신이 만든 프로젝트 내부에서만 사용할 수 있다. 클래스를 생성할때 아무런 접근 제한자를 선언하지 않는다면 자동적으로 internal이 선언될 것이다. 만약 한 프로젝트만 이용해 개발을 한다면 잘 사용하지 않는 제한자이다.
4. public
제한을 받지 않고 어느곳이나 사용할 수 있다. 그렇기 때문에 A클래스에서 B클래스의 변수에 접근하기 위해서는 꼭 public으로 선언된 변수여야 참조가 가능하다.
접근 제한자는 코드에 없어선 안 될 필수 요소 중 하나여서 꼭 개념만이라도 알고 가면 좋다.
이외에도 protected internal, private protected 같은 제한자도 있으나 잘 사용하지는 않아 따로 적어두진 않겠다. 궁금하다면 검색을 통해 짚고 넘어가면 될 것이다.
'언어 > C#' 카테고리의 다른 글
[C#] 캐싱 (0) | 2024.11.22 |
---|---|
C# 함수 , 메서드 (0) | 2022.10.31 |
C# 자료형이란 (1) | 2022.10.28 |
C# 변수(Variable) (0) | 2022.10.27 |