Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,为什么要在构造函数外部初始化数据字段,然后在构造函数内部给它一个不同的值?_Java_Arrays_Constructor_Datafield - Fatal编程技术网

在Java中,为什么要在构造函数外部初始化数据字段,然后在构造函数内部给它一个不同的值?

在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

我正在阅读Koffman和Wolfgang的数据结构,在ArrayList的实现中,他们在构造函数外部初始化了一个数据字段,然后在构造函数中给它一个不同的值

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也没有意义。