0

同じクラス内でプライベート変数を取得するより好ましい方法は何ですか。

たとえば、次のコードがあります。

public Class TestClass
{
    private String name;

    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }

...

    public String someMethod()
    {
        return getInfo(name);
        or
        return getInfo(getName());
    }
}

...

同じクラス内のプライベート変数をその名前またはゲッターで取得するための好ましい方法は何ですか?

更新: ゲッターは常に名前だけを返します。

4

2 に答える 2

1

ええと、これは好み/状況に関連する質問だと思います。フィールドを直接呼び出すと、とにかく非常に高速で、おそらくもう少し簡潔な追加のメソッド呼び出しを行わないため、より良い時間が得られます。しかし、ゲッターを使用すると、抽象化の別のレイヤーを追加し、そこで別のことを行うことができます。たとえば、デフォルトの代わりに別の値を返すなど、フィールドが設定されていない場合は、次のようになります。

int getAge() {
   return (age < 18) ? 18 : age;
}

また、これは、次のようにオブジェクトが null を返さないようにする場合にも役立ちます。

Stuff getStuff() {
    if(stuff == null) {
        return Stuff.NULL_OBJECT;
    }
}

Stuff は私のクラスであり、NULL_OBJECT フィールドは Null オブジェクト パターンの実装であり、私の例には同期がないことに注意してください。

そうは言っても、状況が贅沢なものを必要としない場合、私は常に直接フィールドアクセスアプローチを使用します.

于 2013-02-15T14:46:21.513 に答える
1

好みは文脈によって異なります。ゲッターが単に変数を返す上記のケースでは、多くの開発者は変数を直接返す傾向があります。ただし、ゲッターがより複雑であるか、将来変更される可能性があると思われる場合は、ゲッターの使用が推奨される場合があります。nameそれはすべて、何を表し、何をgetName()返し、何をgetInfo(...)期待するかに依存します。

于 2013-02-15T14:46:33.750 に答える