我想为一个类创建一个对象引用数组,但是不想实际创建要分配到数组的对象。我该怎么办?
答案 0 :(得分:3)
我想为类
创建一个对象引用数组
ClassName [] classesArray = new ClassName [size];
创建一个数组。
但不想实际创建要分配到数组的对象。
到目前为止,您尚未创建任何对象。只是不要分配。
答案 1 :(得分:1)
您可以将new Foo[n]
n
评估为非负整数。这将创建一个大小为n
的数组,该数组将初始化为null
Foo
个引用。
在实践中,您将 分配给其他可以立即进行垃圾收集或可能完全优化的内容:
Foo[] a = new Foo[n];
答案 2 :(得分:1)
数组用于存储原始值和对象。例如,我们可以创建一个String数组或任何类对象。 为了解释,让我们创建一个包含单个实例变量empId的类Employee。以下是此类的定义。
class Employee{
int empId;
}
以下列方式创建对象数组,就像基本类型数据项的数组一样。
Employee[] EmployeeArray = new Employee[10];
上面的语句创建了一个数组,该数组可以保存对十个Employee对象的引用。它不会自己创建Employee对象。 必须使用Employee类的构造函数单独创建它们。 EmployeeArray包含十个内存空间 可以存储十个Employee对象的地址。如果我们尝试在创建它们之前访问Employee对象,则会发生运行时错误。
必须使用Employee类的构造函数实例化Employee对象,并且应按以下方式将其引用分配给数组元素。
EmployeeArray[0] = new Employee();
通过这种方式,我们也创建了其他Employee对象。如果必须使用不同的构造函数创建每个Employee对象,我们会多次使用类似于上面的语句。但是,在这种特殊情况下,我们可能会使用for循环,因为所有Employee对象都是使用相同的默认构造函数创建的。
for ( int i=0; i<EmployeeArray.length; i++) {
EmployeeArray[i]=new Employee();
}
上面的for循环创建了10个Employee对象,并为数组元素分配了它们的引用。
答案 3 :(得分:0)
这是普通数组。
int [] xr = new int[5];
创建数组后,可以为该元素分配值。
xr[0]=100;
接下来,我们将看到什么是对象引用数组。
employee [] person = new employee[4];
此对象数组中有5个元素。此数组的类型为employee.like int long short..etc。这个数组有5个元素。所有元素都是人。现在我们可以为这个对象数组分配一个值。仔细看看!
person[0]= new employee();