1

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

public class KWArrayList {
    private static final int INITIAL_CAPACITY = 10;
    private int capacity = 0;

    public KWArrayList() {
        capacity = INITIAL_CAPACITY;
    }
}

为什么他们初始化capacity0构造函数之外,然后在构造函数中给它一个不同的值?

4

1 回答 1

3

在这个特定的示例中,当唯一的构造函数将值设置为常量 10 时,默认为零是没有意义的。没有造成任何伤害,但也没有任何好处。

正如其他人评论的那样,您的教科书中可能会有更多内容,将此类和子类发展到默认为零是有意义的程度。

但是……默认为一个特别为零的值尤其没有意义,因为原语int自动默认为零。一个可能的好处是编写程序可以明确地向任何阅读程序员明确零确实是他们的预期默认值。

于 2021-05-30T22:46:43.197 回答