在Java中,为什么要在构造函数外部初始化数据字段,然后在构造函数内部给它一个不同的值?
我正在阅读Koffman和Wolfgang的数据结构,在ArrayList的实现中,他们在构造函数外部初始化了一个数据字段,然后在构造函数中给它一个不同的值在Java中,为什么要在构造函数外部初始化数据字段,然后在构造函数内部给它一个不同的值?,java,arrays,constructor,datafield,Java,Arrays,Constructor,Datafield,我正在阅读Koffman和Wolfgang的数据结构,在ArrayList的实现中,他们在构造函数外部初始化了一个数据字段,然后在构造函数中给它一个不同的值 public class KWArrayList { private static final int INITIAL_CAPACITY = 10; private int capacity = 0; public KWArrayList() { capacity = INITIAL_CAPACIT
public class KWArrayList {
private static final int INITIAL_CAPACITY = 10;
private int capacity = 0;
public KWArrayList() {
capacity = INITIAL_CAPACITY;
}
}
为什么他们在构造函数外部将容量初始化为0,然后在构造函数中给它一个不同的值?在这个特定的例子中,当一个且唯一的构造函数将值设置为10的常量时,默认为0是没有意义的。没有伤害,但也没有好处 正如其他人所评论的,在您的教科书中可能会有更多内容,将这个类和子类发展到默认值为零的程度是有意义的
但是…默认值为零是毫无意义的,因为原语
int
会自动默认为零。一个可能的好处是,编写编程可以向任何正在阅读的程序员明确说明,零确实是他们的预期默认值。在这个特定示例中,当One and only构造函数将值设置为10的常量时,将默认值设置为零没有意义。没有伤害,但也没有好处
正如其他人所评论的,在您的教科书中可能会有更多内容,将这个类和子类发展到默认值为零的程度是有意义的
但是…默认值为零是毫无意义的,因为原语
int
会自动默认为零。一个可能的好处是,创作编程可以明确地向所有阅读编程人员表明,零确实是他们的预期默认值。因此,您可以重载构造函数以接受自定义的容量。
。但是只有一个构造函数……可能是下一章!?;)但是,你的困惑是对的:只有当“更多的构造器来了”!;)的时候才有意义。。。但是“用0初始化”真的是初始化吗!?旁注:public ArrayList()
不能是类KWArrayList
的构造函数。可能因此您可以重载构造函数以接受自定义的容量。但是只有一个构造函数……可能是下一章!?;)但是,你的困惑是对的:只有当“更多的构造器来了”!;)的时候才有意义。。。但是“用0初始化”真的是初始化吗!?旁注:public ArrayList()
不能是类KWArrayList
的构造函数。当zer还是默认值时,显式写入zer也没有意义。当zer还是默认值时,显式写入zer也没有意义。