声明和设置默认ivars之间是否有区别或首选项,如:
public class Foo
{
private int yes = 0;
private String name = "";
//...
//constructors, setters, getters, etc.
}public class Foo
{
private int yes;
private String name;
public Foo()
{
yes = 0;
name = "";
}
//...
//setters, getters, etc.
}另外,在constructors和Foo中的其他方法中,我应该使用accessor和mutator方法设置和获取ivars,还是直接分配它们呢?
发布于 2013-11-28 18:14:55
原语类型(在本例中为int)是由默认值自动初始化的,因此没有理由显式地将其设置为0;
那么Strings和其他对象呢?这完全取决于您的首选项。我不喜欢在构造函数中初始化它。但是请记住,在构造函数中初始化字段的情况下,如果字段初始化引发某些异常,则可以处理异常。
发布于 2013-11-28 18:16:43
同样的事情。外部类将需要访问器和变异器方法。
发布于 2013-11-28 18:17:20
这不重要,这基本上是个人偏好。Java编译器将初始化从类复制到每个构造函数(没有额外的调用,它实际上是字节码中的直接副本)。
就个人而言,我更喜欢将独立于数据的初始化放到类中,而将可能依赖于构造函数参数的数据放到构造函数本身。
https://stackoverflow.com/questions/20272490
复制相似问题