Java 对象数组中元素的大小或数量?在爪哇?
前。 学生[]存储=新学生[10];Java 对象数组中元素的大小或数量?在爪哇?,java,arrays,object,Java,Arrays,Object,前。 学生[]存储=新学生[10]; 初始化后,除了设置计数器外,是否还有其他方法或方法可以返回创建的对象数?如果使用数组,数组大小是固定的,因此storage.length将始终提供数组大小。最后,您将执行此操作以获得实例化对象的数量: for(Student s : storage){ if (s != null) count ++; } 第一次进近: 但是,如果将创建的对象存储在列表中。您只需通过以下方式获取对象的数量:list.size() 每次实例化新的学生对
初始化后,除了设置计数器外,是否还有其他方法或方法可以返回创建的对象数?如果使用数组,数组大小是固定的,因此storage.length将始终提供数组大小。最后,您将执行此操作以获得实例化对象的数量:
for(Student s : storage){
if (s != null)
count ++;
}
第一次进近:
但是,如果将创建的对象存储在列表中。您只需通过以下方式获取对象的数量:list.size()代码>
每次实例化新的学生对象时,都会调用学生构造函数,因此会自动更新所创建对象的数量
new Student("Alice");
new Student("Bob");
new Student("Carol");
System.out.println(Student.getStudCreated()); //Print num of Student obj instantiated.
3将被打印,因为构造函数被调用了3次。storage.length
..什么对象的数量?yoylu认为该方法在幕后会做什么?@Square root当你说“Counter”时,你能详细说明一下吗?你是指循环中的计数器还是构造函数中的计数器?你将全局计数器设置为零。然后每次初始化对象时,计数器都会增加。无论是在循环中还是在构造函数中,或者不使用该行代码,您都不会。在第二种方法中,增量应该在Student.class
上的同步块中,只是为了安全起见。@平方根如果我的解决方案解决了您的问题,您可以通过单击我答案旁边的勾选接受我的解决方案。如果您的意思是投票,我做到了,但上面说我至少要有15个我没有的名声yet@Square-root Not upvote,您仍然可以通过单击upvote按钮下方的空心按钮来接受解决方案。作为回报,你获得2次重复。不管你现在有多少代表权。
class Student{
private static int studCreated = 0;
public Student(){
studCreated ++; //Counts automatically
}
//Other constructors not shown here
public static int getStudCreated(){
return studCreated;
}
}
new Student("Alice");
new Student("Bob");
new Student("Carol");
System.out.println(Student.getStudCreated()); //Print num of Student obj instantiated.