Java代码 - 如何设置对象变量

时间:2012-03-23 04:24:58

标签: java

我只是在学习并希望了解设置对象变量的一段代码。

在下面的测试类中设置对象变量bfield的正确方法是什么?

public class test {
private String afield;

private String bfield;

public test() {

buildList();

}

public void buildList() {

    some code to derive and populate afield.

    this.bfield = this.afield;   //  ( 1)

    setBfield(afield);  // (2) say getter and setters do exist

    bfield = afield;  //  (3)
}

正确的做法是什么?我是1还是选择2?

3 个答案:

答案 0 :(得分:3)

setter / getters是更可取的,因为你也可以在那些访问器方法中封装一些处理


另见

答案 1 :(得分:3)

当然,这三个中的任何一个都会起作用。

我通常不喜欢选项1,除非我区分实例成员和参数。例如,public void buildList(String bfield) { this.bfield = bfield; }this.everything是额外的噪音;如果你不需要它,它所做的就是给bug提供更多隐藏的代码。:)

选项2更具有前瞻性;如果你改变了东西,那么必须与bfield一起设置其他东西(或者如果bfield根本不需要支持字段 - 例如,如果设置它应该设置一些东西子对象),你会很高兴你打电话给setBfield - 因为你不会有十几个地方来改变设置bfield的代码。基本上,如果您需要并且已经有setBfield方法,我建议在大多数情况下使用它。

如果您知道的字段将始终包含在对象本身中,并且独立于其他字段,则选项3通常更快。另外,如果您不希望外部代码也能够设置bfield,则无需创建setter(读取:污染您的界面)。

答案 2 :(得分:-2)

使用eclipse!让它为你做一些工作。 像这样创建一个类Test。

public class Test {
   private String afield;
   private String bfield;
}

然后执行以下操作:

  • 右键单击 - >选择'来源' - >生成构造函数
  • 右键单击 - >选择'来源' - >生成带字段的构造函数
  • 右键单击 - >选择'来源' - >生成getter / setter

完成:)并查找java bean约定。你的代码会吓坏任何java exp dev! :)