4

我对在类似情况下何时使用字段以及何时不使用感到困惑:

1)我可以这样做:

public class myObject{

private int amount;

    public myObject(int amount) {

        this.amount = amount;
        doSomething();
    }

    private void doSomething(){
        //some code
    }
}

2)或者:

public class myObject{

    public myObject(int amount) {

        doSomething(amount);
    }

    private void doSomething(int amount){
        //some code
    }
}

第一个例子对我来说看起来更干净,但第二个自动告诉它amount不会在其他任何地方使用,而是在对象内部,因为它不是一个字段。无论如何,在我看来,它看起来有点像一些沉重的“乒乓”技术,尤其是当我想通过这样的代码传递许多对象和值时。

那么,即使我在对象之外不需要它们,我是否应该将构造函数/方法参数保存为字段?

4

2 回答 2

4

amount如果您在调用之后不需要doSomething(amount),那将比您发布的前一个示例更可取。

如果您amount在稍后时刻成为对象的一部分,那么使用前一个“技术”是合乎逻辑的。

这是您可以遵循的经验法则:

如果该字段表示您的类中的终止状态,则将其设为字段。

如果该字段表示您班级中的瞬态,请使用后者的“技术”。

于 2013-02-04T19:52:50.083 回答
1

字段定义对象的结构。它是它所代表的实体的一个属性,可以是一个人的名字,也可以是一个帐户的货币,仅举一些例子。

它们定义了一个类的特定实例,并在一个组中定义了一个对象的当前状态。这些属性应该放在一个字段中,因为它们将被多次查询和更新。

您应该考虑该特定值有意义的上下文。如果它是与某个对象密切相关的东西,并且只要对象“存在”就应该坚持下去,那么它可以是一个场。否则,它可以只是一个方法或构造函数参数。

于 2013-02-04T19:56:51.257 回答