変数、メソッド、およびクラスは、さまざまなセキュリティ レベルを受け取ることができます。私の C# の経験から、次のようなものがあります。
パブリック
内部
保護
保護 内部
プライベート
これで、メソッドとクラスを非公開にする、または内部または保護することの使用法は理解できましたが、変数についてはどうでしょうか? 変数を private にしても、Property を使って別のクラスから呼び出すことができます。
私は常に、プロパティがベストプラクティスであると考えてきました。したがって、それを使用できれば、インスタンスを介して変数を直接呼び出す必要はありません。
変数をプライベートにしない理由はありますか?
編集: プロパティについて、あたかも栄光のパブリック変数に過ぎないかのように話している人がいます。
簡単な注意: public 変数はその値だけを返します。プロパティを使用すると、さらに多くのことができます。例えば:
public int AmountOfBooks{
get {
//code to check certain conditions
//maybe trigger an event while we're at it.
//and a few conditionals.
return this.amountOfBooks;
}
set {
//a few conditionals
//maybe trigger an event
this.amountOfBooks = value;
//and I can do even more... I think, never tried this.
}
}
私のプロフィールを読んだ人は、私が学生であることを知っています。プロパティを「美化されたパブリック変数」として使用することは、多くの仲間の学生が行っていることです。彼らにこれができると言ったときの最も一般的な反応は、「それは許されますか?」です。