• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

get, set으로 은닉성을 챙길 수 있다는 말

21.01.02 20:01 작성 조회수 195

0

앞서 강의에서 은닉성을 지키기 위해 

private int variable1

public int getVariable1() { return variable1; }

public int setVariable1(int hp) { this.variable1 = hp; }

로 사용을 하여 클래스 내부의 민감한 변수를 아무나 건드리는 걸 방지한다고 이해했습니다.

그런데 

public int Hp { get; set; }<o:p></o:p>

이렇게 사용을 하면 민감한 변수라고 정했던 Hp 변수를 누구나 변경또는 사용할 수 있지 않나요? 강의에서 말씀하셨던 디버깅에 용이하다는 건 알겠으나, 은닉성이 지켜진단 말이 잘 이해가 가질 않네요 ㅠㅠ 도움주시면 감사하겠습니다.

답변 2

·

답변을 작성해보세요.

1

public int Hp { getset; }

이거랑

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

호야님의 프로필

호야

질문자

2021.01.03

아하! 정말 감사합니다 ^^