Java 创建实例的类的数组
拥有Obj类,该类在其构造函数中具有System.out.printlnHello worldJava 创建实例的类的数组,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[]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的toStringObj[]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());