캡슐화에 대해 공부하고 있습니다. 클래스의 모든 데이터 멤버를 private로 만들어서 자바에서 완전히 캡슐화 된 클래스를 만들 수 있습니다.캡슐화는 정의 된 방식으로 어떻게 보호됩니까?
다른 사용자가 내 클래스 변수에 직접 액세스하여 변경할 수 없도록합니다. 예를 들어
:
Class MyAccount{
int AccountTotalAmt = 1000;
}
Class Mainclass{
public static void main(String[] args){
MyAccount Obj = new MyAccount();
obj.AccountTotalAmt = -200; (Just to avoid this kind of situations. Its just an example could be many more reasons)
}
}
내가 말했듯이, 우리는 어떻게 "아무도 직접 내 클래스 변수에 액세스하지 않고 변경할 수 있습니다."때문 변수에 액세스하려면 변수를 private로 만들고 getter 및 setter를 사용하여 변수를 설정합니다. 그러면 여기서 어떤 차이가 있습니까? 누군가가이 세터와 게터를 알고 있다면 어떨까요? 그렇게 쉽게 변경할 수 있습니다.
안전한 계획입니까? 누구든지 더 나은 방법으로 설명 할 수 있습니까?
원하는 게터와 설정기를 넣을 수 있습니다. 나는 누군가가 값을 설정할 때 항상 유효성을 검사 할 수 있도록 설정자에게 유효성 검사를 넣을 수 있음을 의미합니다. 또한 아무도 값을 변경할 수 없도록 값을 읽을 수 있도록 getters 만 가질 수 있습니다. – dwij