c# 코딩을 하다보면 클래스, 함수, 변수 제일 앞에 붙어 있는것을 보신적이 있으실겁니다.
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
이러한 것들은 접근 제한자(Access modifier)라고 불리는데요.
접근제한자는 해당 변수 ,함수, 클래스에 개방성(?)정도를 조절하는 역할을 합니다.
쉽게 말해 모두가 쓸수 있게 해준다거나, 아무도 못쓰게하는 등 제한 정도를 거는거죠.
자주 쓰이는것으로 아래 3가지 있으며, 이번 포스팅에서는 아래 3가지에 대해서만 알아 보도록 하겠습니다.
1. private
2. protected
3. public
1. public
public을 쓰는 순간 사실상 신경 쓸 필요가 없습니다.
왜냐하면 모든 곳에 사용 가능하고, 심지어 다른 파일에 있는 클래스도 가져와서 쓸 수 있습니다.
(다른 파일에 클래스를 사용한 예는 해당포스팅 참조)
2. private
해당 변수가 정의된 곳에서만 사용가능합니다.(가장 폐쇄적)
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
위 예시에서는 Player class 안에서 정의 되었기 때문에, Player class 바깥에서 실행하면 아래와 같이 접근 거부 에러가 뜹니다.
output:
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
참고로 접근제한자를 따로 지정하지 않을 경우(생략) 디폴트로 private이 적용됩니다.
마찬가지로 같은 결과가 나오는것을 확인할 수 있습니다.
output:
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
그렇다면 private으로 지정한 값을 외부에서 보기 위해서는 어떻게 할까요?
해당값이 지정된 클래스외 다른 곳에서 접근할 수 있도록하는 중간 연결 다리(?)가 필요합니다.
즉, 아래와 같이 public 으로 구성된 함수를 같은 클래스 내부에 지정하고 그 함수를 통해 실행하는것입니다.
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](https://blog.kakaocdn.net/dn/bghTvH/btrBdamYqLz/jqKCg0DTYn84PLJBSJOmfK/img.png)
그 후 외부에서는 public으로 설정된 함수를 불러 실행하면 됩니다.
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 2. private](https://blog.kakaocdn.net/dn/b4yjNQ/btrBfK8J9Vg/CvNUwzKYAdYJvGondhsBbK/img.png)
3. protected
private 보다는 좀 더 프리한 버젼으로,
자기 클래스내부는 물론이고 자식 클래스까지 사용 가능합니다.
말로 표현하니 조금 애매한데요.
아래 코드를 보시면 protected로 정의된 변수가 있는 클래스 Player를 상속한 클래스 Player2가 있습니다.
Player2는 Player1을 상속받은 자식클래스 즉 파생클래스인데요.
![[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 3. protected [c# 기초] c# 접근 제한자(Access modifier) / private, protected, public - undefined - 3. protected](https://blog.kakaocdn.net/dn/c3rzW7/btrBdVp1ikH/X93wr1pR4ckCUBYv5oY48K/img.png)
앞서 정의에서 말했듯이 부모 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 |
댓글