Java 数组默认构造函数

Java 数组默认构造函数,java,arrays,constructor,default-constructor,Java,Arrays,Constructor,Default Constructor,如果我要用Java创建一个简单的类,其中只包含一个实例变量的整数数组,那么对于默认构造函数有什么意义呢?我不想让它空着。您可以这样做: public class IntArrayDemo { private static final int DEFAULT_SIZE = 10; private int [] values; public IntArrayDemo() { this(DEFAULT_SIZE); } public IntA

如果我要用Java创建一个简单的类,其中只包含一个实例变量的整数数组,那么对于默认构造函数有什么意义呢?我不想让它空着。

您可以这样做:

public class IntArrayDemo {
    private static final int DEFAULT_SIZE = 10;
    private int [] values;

    public IntArrayDemo() {
        this(DEFAULT_SIZE);
    }

    public IntArrayDemo(int size) { 
        if (size < 0) throw new IllegalArgumentException("size cannot be negative");
        this.values = new int[size];
    }
}
IntArrayDemo中的公共类{
私有静态最终int默认值_SIZE=10;
私有int[]值;
公共IntArrayDemo(){
这(默认的_大小);
}
公共IntArrayDemo(int size){
如果(大小<0)抛出新的IllegalArgumentException(“大小不能为负”);
this.values=新整数[大小];
}
}

您不需要默认构造函数。您可以使用静态初始化。

如果要在实例化类时设置包含的数组,应将该数组用作构造函数的参数。否则,空构造函数就可以了(您不需要显式声明它,没有显式构造函数的每个类默认都有一个空构造函数)


空构造函数中没有错误。如果您确实想以某种方式填充列表,可以将列表初始斜体化:

//...
private SIZE = 10;
private int [] list;

public MyClass() {
  list = new int [SIZE];
}

这取决于您和您的用例。这是一个奇怪的问题。你基本上是说你不喜欢空构造函数的样子,你想用一些不必要的功能来装饰它?不,我只是不想让点像我上次的作业那样停靠。是的。
//...
private SIZE = 10;
private int [] list;

public MyClass() {
  list = new int [SIZE];
}