【问题标题】:Array Default Constructor [closed]数组默认构造函数[关闭]
【发布时间】:2014-05-08 10:16:46
【问题描述】:

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

【问题讨论】:

  • 这取决于您和您的用例。
  • 这是一个奇怪的问题。你基本上是在说你不喜欢空构造函数的样子,你想用一些不必要的功能来装饰它?
  • 不,我只是不想像我上次的作业那样扣分。是的。

标签: java arrays constructor default-constructor


【解决方案1】:

你可以这样做:

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];
    }
}

【讨论】:

    【解决方案2】:

    空的构造函数没有错。如果你真的想以某种方式填充它,你可以初始化你的列表:

    //...
    private SIZE = 10;
    private int [] list;
    
    public MyClass() {
      list = new int [SIZE];
    }
    

    【讨论】:

      【解决方案3】:

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

      public class ArrayWrapper {
          private final int[] innerArray;
      
          public ArrayWrapper(int[] values) {
              this.innerArray = values;
          }
      }
      

      【讨论】:

        【解决方案4】:

        您不需要默认构造函数。您可以使用静态初始化。 http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-16
          • 1970-01-01
          • 1970-01-01
          • 2016-07-06
          • 1970-01-01
          • 1970-01-01
          • 2023-03-20
          • 1970-01-01
          相关资源
          最近更新 更多