【发布时间】:2025-12-23 18:10:06
【问题描述】:
请考虑此代码
public class Utilities
{
public static MyClass GetMyClass()
{
MyClass cls = new MyClass();
return cls;
}
}
这个静态方法会在每次调用时返回一个新的MyClass 实例吗?或者它会一遍又一遍地返回对同一个实例的引用?
【问题讨论】:
-
它显式地每次都会创建一个新实例...
-
静态是唯一的方法,即方法内部的所有内容(内容)都表示为静态并且不与任何对象关联。但是方法的内容每次都会创建一个新的对象并返回给你。
-
这是你应该能够自己测试的东西(如果你真的认为它需要测试的话)。在MyClass的构造函数中添加一个System.out.println("hello"),调用你的静态方法5次,看看hello被打印了多少次。
-
@JBNizet 或只是
System.out.println(GetMyClass() == GetMyClass())。 -
确实如此。有很多方法可以同时进行实验和学习。