Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建实例的类的数组_Java_Arrays_Instance - Fatal编程技术网

Java 创建实例的类的数组

Java 创建实例的类的数组,java,arrays,instance,Java,Arrays,Instance,拥有Obj类,该类在其构造函数中具有System.out.printlnHello world 我使用-Obj[]objArray=newobj[10]创建此类的数组;没有打印,意味着没有调用Obj实例。除了在for循环中创建实例之外,还有其他方法可以创建这样的数组吗 既然您想知道除了使用for循环之外的其他方法,您可以这样做:- Obj[] objArray = {new Obj(), new Obj(), new Obj()}; 这里发生的是,您直接使用数组元素初始化数组引用。 现在,实际

拥有Obj类,该类在其构造函数中具有System.out.printlnHello world


我使用-Obj[]objArray=newobj[10]创建此类的数组;没有打印,意味着没有调用Obj实例。除了在for循环中创建实例之外,还有其他方法可以创建这样的数组吗

既然您想知道除了使用for循环之外的其他方法,您可以这样做:-

Obj[] objArray = {new Obj(), new Obj(), new Obj()};
这里发生的是,您直接使用数组元素初始化数组引用。 现在,实际数组对象的类型是从LHS上的数组引用类型推断出来的

因此,通过该声明,将创建一个大小为3的数组,数组中的每个索引都按照给定的顺序用Obj类的实例初始化

我建议的一种更好的方法是使用ArrayList,在这种情况下,可以使用双大括号初始化来初始化列表,而不使用for循环。另外还有一个额外的优势,即您可以随时为其添加新的元素。因为它动态地增加了数组

当您执行Obj[]objArray=newobj[10]时; 您只能创建一个引用数组来指向实际的“Obj”对象

但在您的情况下,实际的Obj对象永远不会被创建

for (int i = 0; i < objArray.length; i++) {
objArray[i] = new Obj();
}
执行上述操作将打印所需的内容

最后执行System.out.printlnArrays.deepToStringobjArray以打印所有Obj的toString

Obj[]objArray=new Obj[10];只需创建一个能够容纳10个OBJ的阵列。要将OBJ放入数组,您需要使用Rohit的方法或编写一个简单的for循环,一次初始化一个数组条目:

for (int i = 0; i < 10; i++) {
    objArray[i] = new Obj();
}
或者,如果没有for循环:

int i = 0;
while (i < 10) {
    objArray[i] = new Obj();
    i++;
}

到目前为止,答案是好的和有帮助的。我来这里只是想提醒你

Obj[] objArray = new Obj[10];
Arrays.fill(objArray, new Obj());

不过,这只会将一个对新Obj的引用分配给数组的所有元素

@down投票人。。有什么理由否决投票吗?这个答案也是如此??奇怪的你没看到OP提到的,他不想要一个for循环吗?我看到你有16k的代表,我想你可以给出一个更好的答案。。。编辑您的答案以删除我的答案downvote@memosdp. 是的,事实上我之前的回答缺乏很好的解释。谢谢:这就是一些学生对老师期望更高的原因。不客气不,只是踢一脚,或者更好的戳一下,让他们知道你对他们的期望更高POP不想使用for循环。请看,我想知道他为什么不想要for循环。他总是可以用一段时间来代替。@HotLicks。。啊!!并不是他不想用它。就像,他想知道是否有其他不需要for循环的方法。。。;objArray[1]=。。。;objArray[2]=…;…-这就是{new Obj,new Obj,new Obj}的本质;UndertheCovers.OP不想使用for循环。
Obj[] objArray = new Obj[10];
Arrays.fill(objArray, new Obj());