게터와 세터가 private를 우회해서 정보를 빼내오는 기능을 하는데요.
게터와 세터가 private 필드나 메서드랑 같은 클래스에 있다면 우회해서 정보를 빼낸다는게 의미가 있는것인가요?
그니까 게터와 세터가 적어도 다른 클래서의 메서드가 되어야하지 않을까.. 하는 의문이 들어서 입니다.
sehongpark님의 답변
# private 필드는 외부 클래스에서 접근할 수 없습니다.
질문을 제가 잘 이해했는지 모르겠네요. 확실히 말씀드릴 수 있는 건, private 필드는 외부 클래스에서 접근 자체가 불가능합니다. 따라서 게터와 세터는 외부 클래스에서 제 역할(필드에 접근 또는 변경)을 할 수 없습니다.
실생활을 예로 들어, ATM의 현금은 private 입니다. 함부로 꺼내쓸 수 없죠. 하지만 카드와 비밀번호를 입력하면 현금을 인출할 수 있습니다. 현금을 인출하는 과정 중에서 내부적으로 게터와 세터 메소드가 사용됩니다. 결론 적으로, 현금을 꺼내고 변경하는 동작의 주체는, 현금 인출자가 아닌 ATM 기기에게 있습니다.