인프런 커뮤니티 질문&답변

호야님의 프로필 이미지
호야

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Property (프로퍼티)

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

작성

·

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

호야님의 프로필 이미지
호야
질문자

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

호야님의 프로필 이미지
호야

작성한 질문수

질문하기