c# 코딩을 하다보면 클래스, 함수, 변수 제일 앞에 붙어 있는것을 보신적이 있으실겁니다.
이러한 것들은 접근 제한자(Access modifier)라고 불리는데요.
접근제한자는 해당 변수 ,함수, 클래스에 개방성(?)정도를 조절하는 역할을 합니다.
쉽게 말해 모두가 쓸수 있게 해준다거나, 아무도 못쓰게하는 등 제한 정도를 거는거죠.
자주 쓰이는것으로 아래 3가지 있으며, 이번 포스팅에서는 아래 3가지에 대해서만 알아 보도록 하겠습니다.
1. private
2. protected
3. public
1. public
public을 쓰는 순간 사실상 신경 쓸 필요가 없습니다.
왜냐하면 모든 곳에 사용 가능하고, 심지어 다른 파일에 있는 클래스도 가져와서 쓸 수 있습니다.
(다른 파일에 클래스를 사용한 예는 해당포스팅 참조)
2. private
해당 변수가 정의된 곳에서만 사용가능합니다.(가장 폐쇄적)
위 예시에서는 Player class 안에서 정의 되었기 때문에, Player class 바깥에서 실행하면 아래와 같이 접근 거부 에러가 뜹니다.
output:
참고로 접근제한자를 따로 지정하지 않을 경우(생략) 디폴트로 private이 적용됩니다.
마찬가지로 같은 결과가 나오는것을 확인할 수 있습니다.
output:
그렇다면 private으로 지정한 값을 외부에서 보기 위해서는 어떻게 할까요?
해당값이 지정된 클래스외 다른 곳에서 접근할 수 있도록하는 중간 연결 다리(?)가 필요합니다.
즉, 아래와 같이 public 으로 구성된 함수를 같은 클래스 내부에 지정하고 그 함수를 통해 실행하는것입니다.
그 후 외부에서는 public으로 설정된 함수를 불러 실행하면 됩니다.
3. protected
private 보다는 좀 더 프리한 버젼으로,
자기 클래스내부는 물론이고 자식 클래스까지 사용 가능합니다.
말로 표현하니 조금 애매한데요.
아래 코드를 보시면 protected로 정의된 변수가 있는 클래스 Player를 상속한 클래스 Player2가 있습니다.
Player2는 Player1을 상속받은 자식클래스 즉 파생클래스인데요.
앞서 정의에서 말했듯이 부모 class의 멤버 변수인 "Hp"를 자식클래스인 Player2에서 가져다 쓸 수 있습니다.
'c#' 카테고리의 다른 글
[c# 기초] StringBuilder 사용 이유? (0) | 2022.05.09 |
---|---|
[c# 기초] partial을 쓰는 이유? (0) | 2022.05.06 |
[c# 기초] this 키워드 , this() 생성자 개념 (0) | 2022.05.04 |
[c# 기초] 다른 프로젝트에 있는 클래스 함수 사용하는법 완벽 정리 (0) | 2022.05.04 |
[c# 기초] 작업중인 파일이 자동적으로 실행되게 하는 방법(Ctrl+ F5) (0) | 2022.05.04 |
댓글