Property가 어떤 클래스 내부에서 선언된 private 레퍼런스값을 다른 외부 클래스에서 불러서 쓰고 싶을때 쓰는 기능이란건 알겠음
아마 Encapsulation 때문에 어쩔수없이 public이 아닌 private을 쓰는것 같은데
public이긴 하지만 이런 비슷한 기능이 static이 있지 않음? 실제로 Game Manager도 이걸 응용하기도 하고.
만약에 class 디시에서 private int A = 0;을 선언하고 외부 class 인디갤에서 get{return A}, set{A += value} 접근자를 써서
A값을 바꾸면 그건 인디갤에서만 A값이 바뀐거야? 아니면 static처럼 A값 자체가 바뀐거야?
만약 후자면 그냥 편하게 public static을 쓰면 되는걸 정말 정보보안 하나때문에 이 번거로운걸 하고 있는거야?
안바뀌지 A가 private이라 인디갤 클라스에서 받을수도 없고
private된 변수를 다른 클래스에서 쓸려고 만든 기능인데 왜 받을수가 없어?
그건 public이지
프로퍼티의 용도는 private으로 선언된 변수에 대하여 다른 클래스에서 접근할 때 private로 선언된 변수를 읽고 변경해줄 수 있다. 이때 get과 set의 접근자 앞에 private을 추가로 사용할 경우 읽기 전용, 쓰기 전용 메소드로 사용할 수 있다.
라고 책에 나와있는데?
디시 클라스에서 A를 선언하고 인디 클라스에서 디시 클라스의 것이 아닌 A의 속성을 선언한 거였나?
longZam // 아 맞네, 그럼 private A를 가진 클래스에서 get,set을 구현하고 다른 외부1 클래스에서 A값을 변경했을때, 외부2 클래스에서 A값을 호출한다치면 A값은 변경된 값으로 리턴됨? 아니면 초기값으로 리턴됨?
머리가 띵해지네
??? 프로퍼티는 getset이 중요한거지 퍼블릭이랑 다른건 그닥 안중요함.>
진짜 지랄도 가지가지