何时使用字段变量?

时间:2010-08-19 23:41:51

标签: java variables

在什么情况下你会使用字段变量而不是局部变量?我发现在类中的2个或更多方法中使用变量时有点困难。我倾向于使用局部变量并将它们传递给另一个方法。

谢谢,

萨拉

4 个答案:

答案 0 :(得分:7)

字段表示与您的班级实例相关的某种状态。例如,BankAccount可能有balance字段。

您永远不应该使用字段来简化从一个方法到另一个方法的数据传递。这根本不是它的目的。这样做也会使您的方法本质上不安全或需要同步。

局部变量只是用于支持方法操作的临时数据存储。例如,

public void addInterest(double rate) {
    double toAdd = rate * balance;
    logTransaction("Interest", toAdd);
    balance += toAdd;
}

toAdd here作为一个字段是没有意义的,因为它是临时的操作,而不是帐户状态的一部分。

答案 1 :(得分:7)

在面向对象的术语中,变量是否有意义作为对象的属性?如果是这样,你应该把它变成一个字段变量。如果没有,它可以采取任何一种方式。

记住单一责任原则 - 精心设计的课程应该只有1个责任,因此只有1个理由可以改变。

答案 2 :(得分:1)

除非有一个非常具体的原因,否则我肯定不会将变量传递给其他方法。如果在类中多次使用该变量,请将其设为字段变量。这几乎总能使您的代码更加灵活。

通常,您也可以考虑变量是否有意义作为类的一部分。也就是说,让Car类具有变量numOfMiles是有意义的,即使它只使用了几次。但是,如果一种方法是int GetAmountOfGasUsed(int milesThisTrip),那么将里程变量作为局部变量传递是有意义的,因为您旅行的距离可能并非特定于汽车。

答案 3 :(得分:0)

如果使用变量的方法也需要修改值,那么一定要使它成为一个字段变量。但是,如果他们只读取该值,您可以安全地传递它。