gpt4 book ai didi

Java:创建对象而不命名它们?

转载 作者:行者123 更新时间:2023-11-29 07:04:39 25 4
gpt4 key购买 nike

我目前正在阅读 Rogers Cadenhead 的《Sam Teach Yourself Java in 21 days》第 6 版。

书中有一个例子展示了在静态变量和方法的其中一章中使用 for 循环创建对象。

代码如下:

public class InstanceCounter {
private static int numInstances = 0;

protected static int getCount() {
return numInstances;
}

private static void addInstance() {
numInstances++;
}

InstanceCounter() {
InstanceCounter.addInstance();
}

public static void main(String[] arguments) {
System.out.println("Starting with " +
InstanceCounter.getCount() + " objects");
for (int i = 0; i < 500; ++i)
new InstanceCounter();
System.out.println("Created " +
InstanceCounter.getCount() + " objects");
}
}

我不明白 for 循环如何在不给这 500 个新对象命名的情况下创建对象。这就是我被教导创建对象的方式:

对象 对象名 = new Object();

for 循环是否只是要创建这些对象并在之后直接丢弃它们,因为它们没有Objectname

我看到当我将代码键入 Netbeans 时,提示显示“忽略新实例”。

最佳答案

new InstanceCounter(); 行,创建了新对象。但是,如果您没有对它的任何引用,您将无法访问它,并且它可能很快就会被垃圾回收。如果您想保留对它的引用,只需添加您在此处编写的内容 Object objectname = new Object();。然后 objectname 将是类 Object 的引用。

您的静态方法不引用您的对象,它们引用类 InstanceCounter。即使某些实例将被 GC 垃圾收集,创建的实例数也会保存在变量 numInstances 中。

关于Java:创建对象而不命名它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com