167

getter/setter を持つ Java POJO の内部プライベート変数を参照するときは、次の用語を使用しました。

  • 分野
  • 変数
  • 属性
  • 財産

上記に違いはありますか?もしそうなら、使用する正しい用語は何ですか? このエンティティが永続化されるときに使用する別の用語はありますか?

4

11 に答える 11

127

ここから: http://docs.oracle.com/javase/tutorial/information/glossary.html


  • 分野

    • クラスのデータ メンバー。特に指定がない限り、フィールドは静的ではありません。

  • 財産

    • ウィンドウの色など、ユーザーが設定できるオブジェクトの特性。

  • 属性

    • 上記の用語集に記載されていない

  • 変数

    • 識別子によって名前が付けられたデータのアイテム。各変数には、int や Object などの型とスコープがあります。クラス変数、インスタンス変数、ローカル変数も参照してください。
于 2012-04-12T00:06:43.020 に答える
108

はいあります。

変数は、ローカル、フィールド、または定数にすることができます (ただし、これは技術的に間違っています)。あいまいな属性です。また、最終的な非静的 (ローカルまたはインスタンス) 変数を呼び出すのが好きな人もいることを知っておく必要があります。

」。これはおそらく、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;
    }

}

組み合わせはもっとたくさんありますが、指が疲れてきます:)

于 2012-04-11T23:55:56.113 に答える
5

Dietel と Dietel は、フィールドと変数をうまく説明しています。

「クラスの静的変数とインスタンス変数を合わせて、そのフィールドと呼びます。」(セクション 6.3)

「変数は、クラスの複数のメソッドで使用する必要がある場合、またはプログラムがクラスのメソッドの呼び出し間で値を保存する必要がある場合にのみ、フィールドとして宣言する必要があります。」(セクション 6.4)

したがって、クラスのフィールドはその静的変数またはインスタンス変数です。つまり、クラス スコープで宣言されます。

リファレンス - Dietel P.、Dietel, H. - Java™ How To Program (Early Objects)、第 10 版 (2014)

于 2016-02-10T09:24:34.060 に答える
1

実はこの二つは同じ意味で使われることが多いのですが、例外もあります。フィールドには、オブジェクトの状態を格納できます。また、すべてのフィールドは変数です。したがって、フィールドではない変数が存在する可能性があることは明らかです。したがって、4 種類の変数 (クラス変数、インスタンス変数、ローカル変数、パラメーター変数) を調べると、クラス変数とインスタンス変数がオブジェクトの状態に影響を与えることがわかります。つまり、クラスまたはインスタンス変数が変更されると、オブジェクトの状態が変更されます。したがって、クラス変数とインスタンス変数はフィールドですが、ローカル変数とパラメーター変数はそうではないと言えます。

より深く理解したい場合は、以下のソースにアクセスできます。

http://sajupauledayan.com/java/fields-vs-variables-in-java

于 2016-02-10T10:09:51.717 に答える