Java 这会以无限循环的方式进行吗?
我是从java开始的,所以如果这听起来很愚蠢,请容忍我 我正在尝试以下代码: First.java 在main函数中,我重新实例化了需要从静态main方法中调用非静态方法的同一个类 虽然这样做有效,但我想知道这是一个好方法吗?以及创建了多少个f实例 我怎样才能确定f是单身Java 这会以无限循环的方式进行吗?,java,static,Java,Static,我是从java开始的,所以如果这听起来很愚蠢,请容忍我 我正在尝试以下代码: First.java 在main函数中,我重新实例化了需要从静态main方法中调用非静态方法的同一个类 虽然这样做有效,但我想知道这是一个好方法吗?以及创建了多少个f实例 我怎样才能确定f是单身 谢谢你回答第一个问题:只创建了第一个类的一个实例 关于第二个问题: 单例模式涉及使用私有构造函数和工厂方法。如果不使用getInstance工厂方法,则无法创建First的新实例,对getInstance的所有调用都将返回相同
谢谢你回答第一个问题:只创建了第一个类的一个实例 关于第二个问题: 单例模式涉及使用私有构造函数和工厂方法。如果不使用getInstance工厂方法,则无法创建First的新实例,对getInstance的所有调用都将返回相同的实例
class First {
private static First instance = null;
private First() {}
public static First getInstance() {
if (instance == null) {
instance = new First();
}
return instance;
}
}
class Second {
public static void main(String[] args) {
First f = First.getInstance(); //Always the same instance of First.
}
}
向下投票很好,但至少指出我的错误,所以我知道我做错了什么。这对运行程序有效,但与单例设计模式无关。这很好,并且创建了一个f实例。我正在删除标记。不要向下投票问题。虽然它是Java101甚至OO101,但它对其他初学者有帮助。请参阅此问答以获得澄清:谢谢……这很有帮助。
class First {
private static First instance = null;
private First() {}
public static First getInstance() {
if (instance == null) {
instance = new First();
}
return instance;
}
}
class Second {
public static void main(String[] args) {
First f = First.getInstance(); //Always the same instance of First.
}
}