작성
·
261
0
앞서 강의에서 은닉성을 지키기 위해
private int variable1
public int getVariable1() { return variable1; }
public int setVariable1(int hp) { this.variable1 = hp; }
로 사용을 하여 클래스 내부의 민감한 변수를 아무나 건드리는 걸 방지한다고 이해했습니다.
그런데
public int Hp { get; set; }
이렇게 사용을 하면 민감한 변수라고 정했던 Hp 변수를 누구나 변경또는 사용할 수 있지 않나요? 강의에서 말씀하셨던 디버깅에 용이하다는 건 알겠으나, 은닉성이 지켜진단 말이 잘 이해가 가질 않네요 ㅠㅠ 도움주시면 감사하겠습니다.
답변 2
1
public int Hp { get; set; }
이거랑
private int variable1
public int getVariable1() { return variable1; }
public void setVariable1(int hp) { this.variable1 = hp; }
이거는 100% 동일한 의미입니다.
진짜로 내부적으로 컴파일러가 그렇게 코드를 만들어줍니다.
은닉성은 [위험한 것은 숨기겠다]는 의미이고,
진짜 public int Hp {get;set;} 을 했다는 의미는
Hp를 get/set하는 것 모두 안전하고
누구나 해도 된다는 의미로 이해할 수 있겠습니다.
0