私はカプセル化について勉強しています。クラスのすべてのデータメンバーを非公開にすることで、完全にカプセル化されたクラスをjavaに作成できます。カプセル化は定義された方法でどのように保護されますか?
他の誰も私のクラス変数に直接アクセスしてそれらを変更できないようにします。例については
:
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を使用して変数を設定します。では、ここで何が違いますか?もし誰かがこれらのセッターとゲッターを知っていたら?そう簡単に変更することができます。
これは絶対的な計画ですか?誰かより良い方法で説明できますか?
ゲッターとセッターは必要に応じて配置できます。つまり、誰かが値を設定したときに常に検証されるように、設定を行うことができます。また、誰も値を変更することができないようにゲッターだけを持つことができます。 – dwij