我只是在学习并希望了解设置对象变量的一段代码。
在下面的测试类中设置对象变量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?
答案 0 :(得分:3)
答案 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;
}
然后执行以下操作:
完成:)并查找java bean约定。你的代码会吓坏任何java exp dev! :)