티스토리 뷰
객체지향 프로그래밍의 특징 중 하나인 은닉성은, 불필요한 정보를 숨기는 것이다.
중요한 데이터를 private으로 숨기고, 아래와 같이 getter와 setter를 사용해 데이터에 접근 & 변경할 수 있도록 해준다.
하지만 필드가 많아지게 되면 매번 getter, setter를 선언하기가 번거로울 것이다. 그래서 C#에는 property라는 기능을 지원하여 불편함을 덜어 주었다.
getter와 setter를 한 곳에 묶어 둠으로써 가독성이 좋아지고, get과 set을 할 때 호출법이 동일하다.
심지어 getter와 setter의 기능이 일반적인 return hp, hp = value일 경우 메소드의 내용과 private 필드 자체를 생략할 수 있다. 생략을 마친 형태는 이렇다.
어짜피 기존 데이터는 private이기 때문에 외부에서 절대 호출할 수 없고, 항상 HP로만 호출되기 때문에 아예 변수 선언 자체를 생략해 버린 것이다. 이때는 컴파일러가 내부에서 자동으로 변수를 선언하고 사용한다. 개인적으로 첫 번째 형태는 크게 메리트를 느끼지 못했는데 마지막 형태는 상당히 파격적이라고 느껴진다.
'C#' 카테고리의 다른 글
[C#]Func, Action (0) | 2023.07.14 |
---|---|
[C#]Delegate, Event (0) | 2023.07.14 |
[C#]Abstract Class & Interface (0) | 2023.07.12 |
[C#]object 타입 (0) | 2023.07.12 |
[C#]리스트 (0) | 2023.07.07 |