重複の可能性:
なぜゲッターとセッターを使用するのですか?
誰かがゲッター/セッターメソッドの使用法を教えてもらえますか?
インタビューの1つで、誰かが私に簡単なクラスを書くように頼みました...それで、私は以下に示すようにクラスを書きました:
class X
{
int i;
public:
void set(int ii){ i = ii;}
int get(){ return i;}
};
さて、質問は次のようになります。
Q1。変数「i」をパブリックではなくプライベートとして宣言したのはなぜですか?
私の答え:Bcoz、データは常に機密性が高く、プライベートと宣言することで、データが外の世界にさらされるのを防ぐことができます。
私の推論に対抗するために、インタビュアーは次のように述べました...「では、なぜパブリックゲッター/セッターメソッドを提供したのですか??これらのメンバー関数はパブリックであるため、変数「i」は外部に公開され、誰でも変更できます。 「i」の値。」
さらに、インタビュアーは私に以前のクラスを次のように書き直すように提案しました。
class X
{
public:
int i;
};
利点は次のとおりです。今回は関数呼び出しが必要ないため、「i」の値をより迅速に変更できます。
インタビュアーの推論は良いようですが....プライベート変数「i」とパブリックget/setメソッドを作成することにより、データを保護することはできません。では、なぜget()/ set()メソッドを書くのでしょうか?