【发布时间】:2018-09-27 21:52:08
【问题描述】:
我可以使用帮助/指导来了解如何构建一个接收(例如 1、2、3)int 的构造函数并将它们存储到一个名为 arr2 的数组对象中。
第一部分:
public static void main (String[] args) {
Create an Arrays object using the first constructor
Arrays arr1 = new Arrays(5);
Arrays arr2 = new Arrays (1,2,3);
}
第二部分:
public class Arrays {
private int [] array;
private int count;
public Arrays(int[] arr){
int[] array = arr;
array= arr;
count = arr.length;
}}
【问题讨论】:
-
可能您正在寻找 var args 方法参数。
-
这是一个有趣的问题:如果您将其称为
int[] a = new int[] {1,2,3}; Arrays arr1 = new Arrays(a);,那么您想复制传入的数组参数。但是,如果您将其称为Arrays arr2 = new Arrays(1,2,3);,那么您就不想复制该数组,因为这会浪费 CPU 时间和内存,因为您可以将 reference 保存到数组中传递的参数目的。 C++ 已经允许通过右值引用进行这种优化,但 Java 不允许。即使您不需要,您也必须在每种情况下复制数组。 -
您的局部变量
int[] array隐藏了也称为arrays的成员变量。要改为访问成员变量,您必须使用 this 完全限定引用它:this.array = arr.
标签: java arrays constructor