getter/setter を持つ Java POJO の内部プライベート変数を参照するときは、次の用語を使用しました。
- 分野
- 変数
- 属性
- 財産
上記に違いはありますか?もしそうなら、使用する正しい用語は何ですか? このエンティティが永続化されるときに使用する別の用語はありますか?
ここから: http://docs.oracle.com/javase/tutorial/information/glossary.html
分野
財産
属性
変数
はいあります。
変数は、ローカル、フィールド、または定数にすることができます (ただし、これは技術的に間違っています)。あいまいな属性です。また、最終的な非静的 (ローカルまたはインスタンス) 変数を呼び出すのが好きな人もいることを知っておく必要があります。
「値」。これはおそらく、Scala などの新しい JVM FP 言語に由来します。
フィールドは通常、インスタンス クラスのプライベート変数です。ゲッターとセッターがあるという意味ではありません。
属性はあいまいな用語です。XML や Java Naming API と混同されやすいです。その用語の使用を避けるようにしてください。
プロパティはゲッターとセッターの組み合わせです。
以下のいくつかの例
public class Variables {
//Constant
public final static String MY_VARIABLE = "that was a lot for a constant";
//Value
final String dontChangeMeBro = "my god that is still long for a val";
//Field
protected String flipMe = "wee!!!";
//Property
private String ifYouThoughtTheConstantWasVerboseHaHa;
//Still the property
public String getIfYouThoughtTheConstantWasVerboseHaHa() {
return ifYouThoughtTheConstantWasVerboseHaHa;
}
//And now the setter
public void setIfYouThoughtTheConstantWasVerboseHaHa(String ifYouThoughtTheConstantWasVerboseHaHa) {
this.ifYouThoughtTheConstantWasVerboseHaHa = ifYouThoughtTheConstantWasVerboseHaHa;
}
}
組み合わせはもっとたくさんありますが、指が疲れてきます:)
Dietel と Dietel は、フィールドと変数をうまく説明しています。
「クラスの静的変数とインスタンス変数を合わせて、そのフィールドと呼びます。」(セクション 6.3)
「変数は、クラスの複数のメソッドで使用する必要がある場合、またはプログラムがクラスのメソッドの呼び出し間で値を保存する必要がある場合にのみ、フィールドとして宣言する必要があります。」(セクション 6.4)
したがって、クラスのフィールドはその静的変数またはインスタンス変数です。つまり、クラス スコープで宣言されます。
リファレンス - Dietel P.、Dietel, H. - Java™ How To Program (Early Objects)、第 10 版 (2014)
実はこの二つは同じ意味で使われることが多いのですが、例外もあります。フィールドには、オブジェクトの状態を格納できます。また、すべてのフィールドは変数です。したがって、フィールドではない変数が存在する可能性があることは明らかです。したがって、4 種類の変数 (クラス変数、インスタンス変数、ローカル変数、パラメーター変数) を調べると、クラス変数とインスタンス変数がオブジェクトの状態に影響を与えることがわかります。つまり、クラスまたはインスタンス変数が変更されると、オブジェクトの状態が変更されます。したがって、クラス変数とインスタンス変数はフィールドですが、ローカル変数とパラメーター変数はそうではないと言えます。
より深く理解したい場合は、以下のソースにアクセスできます。