我正在用 java 编写我的第一个类。
我创建了一个带有 int[] 的类,该类必须用 3 个元素进行声明。
public abstract class MyClass {
private String name;
private int[] myValues = new int[2];
现在我的问题是:
- 确保用户必须插入每个成员的最佳方法是什么?
然后.. 构造函数是实现此目的的最佳方法,因此我使用明确需要的每个元素来创建构造函数:
public MyClass(String nam, int val0, int val1, int val2){
int[] values = new int[]{val0, val1, val2};
setMyValues(values);
}
private void setMyValues(int[] vals){
this.myValues = vals;
}
这是一个好的做法吗?似乎很复杂,而不是给出一个简单的数组:
public void MyClass(int[] vals)..
但这样我就无法确定元素的数量。我应该创建一个自定义异常或一个 if(vals.length != 2) cicle..
我还有一些疑问:
声明 myValues = new int[2] 有用,还是直接写 int[] myValues 也一样? (为什么要声明内部状态的元素数量?)
最好从构造函数接收参数或将 vector 传递给 setter (setMyValues(int[] vals)) 并检查 setter 中的数组?
感谢您的每一个建议。
最佳答案
- 你可以有一个重载的构造函数,其中包含三个整数 值和数组之一。在第一个上构建一个数组并 将其传递给数组构造函数,在第二个构造函数中调用 setter 并评估长度,如果长于三个则抛出 异常(exception)。
- 您正在分配一个从未使用过的对象,浪费空间,并且在分配新数组后将由 GC 收集。我不会向该属性分配任何内容。
- 这取决于您的方法。您可以选择第一点并添加第三个默认构造函数,然后使用 setter 方法设置数组。
希望这有帮助。
关于java 构造函数的数组固定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187090/