일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 배열
- this 키워드
- 자동구현프로퍼티
- 이것이C#이다
- base()
- 접근 한정자
- 중첩클래스
- 클래스
- 인터페이스 상속
- 인터페이스 예제
- c#
- 분할 클래스
- 일반화 클래스
- 형식변환
- 메소드숨기기
- 클래스 연습문제
- 컬렉션 초기화
- 가변배열
- 인터페이스의 프로퍼티
- 배열초기화
- as
- 추상 프로퍼티
- 프로퍼티와 생성자
- 오버라이딩
- 무명형식
- 프로퍼티
- 튜플
- is
- 인덱서
- System.Array
- Today
- Total
제로의영역
9장 프로퍼티 -1 public 필드의 유혹 본문
* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.
* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.
클래스를 작성하다 보면 필드(클래스 안에서 선언된 변수들)를 public으로 선언해버리고 싶은 충동일 자주 일어난다고 합니다. 왕초보인 저는 알 수 없는 충동입니다만....
public은 클래스의 내부/외부 모든 곳에서 접근할 수 있는 접근 한정자로 사용하면 클래스내부 외부에서 접근이 가능하여 private, protected처럼 접근 제한을 고민할 필요가 없어 쓰기는 쉽지만 의도치 않게 필드를 수정하게 되어 알 수 없는 에러를 생산할 수 있습니다.
때문에 private, protected로 필드를 수식하여 수정하면 안되는 코드는 숨기도록 하고 은닉성이라고 부르고 있습니다.
Get/Set 메소드 대신 할당 연산자 '='를 이용해서 필드를 읽거나 할당하고 싶은 생각이 일기 시작하면 이 충동은 더욱 거세진다고 책에 서술되어 있지만 Get/Set이 뭔지도 모르는 초보인 저에게는 역시 알 수 없는 충동입니다.(책의 앞부분에도 언급은 없기 때문에 더욱 알 수 없는 충동입니다.) 여튼, 저자는 할당 연사자 '='를 이용해서 코드를 작성하면 편하다고 이야기하고 있습니다.
Get/Set 메소드는 자바, C++등 다른 언어에서 사용되는 키워드 같습니다.
결론적으로 위에 언급된 충동들을 만족시키는 은닉성과 편의성을 다 갖추고 싶을 때 프로퍼티를 사용한답니다.(욕심쟁이~~ 우훗훗!)
'C#' 카테고리의 다른 글
9.4 프로퍼티와 생성자 (0) | 2019.07.03 |
---|---|
9장 프로퍼티-3.자동구현 프로퍼티 (0) | 2019.06.28 |
8장 인터페이스 연습문제 (0) | 2019.06.26 |
8.5 추상 클래스 (0) | 2019.06.26 |
8.4 여러 개의 인터페이스, 한꺼번에 상속하기 (0) | 2019.06.26 |