Property(프로퍼티) 외부에서 값을 바꾸면 그 값을 누가 언제 바꿨는지 알기가 쉽지 않다. 따라서 외부에서 수정 되지 않기를 원하는 멤버 변수는 protected, private 으로 접근을 제한하고 setter, getter 같은 접근 함수를 public으로 만들어서 이들에 대해 간접 접근한다. (이런 경우 디버깅시 호출 스택을 이용하여 어디서 누가 호출했는지 쉽게 알 수 있다.) 프로퍼티는 은닉성과 관련이 있으며 Getter, Setter 접근 함수와 같은 기능을 좀 더 편하게 사용하기 위한 기능이다. 그래서 사용법도 함수와 비슷하다! class Knight { protected int hp; // ✔ 프로퍼티! public int Hp { get { return hp; } set { hp = ..