单身 人士
单例允许您使用对 java 对象的单个引用。例如,这里有一个包含数字的单例;
public class MySingleton {
private int myNumber;
private static MySingleton instance;
public static MySingleton getInstance() {
if (instance == null) {
instance = new MySingleton();
}
return instance;
}
private MySingleton() {}
public void setMyNumber(int myNumber) {
this.myNumber = myNumber;
}
public int getMyNumber() {
return myNumber;
}
}
现在我们将在 A 类中设置此数字的值:
public class A {
/*...*/
MySingleton mySingleton = MySingleton.getInstance();
mySingleton.setMyNumber(42);
/*...*/
}
然后,您可以从另一个类访问此值:
public class B {
/*...*/
MySingleton mySingleton = MySingleton.getInstance();
int number = mySingleton.getMyNumber();
/*...*/
}
在此类中,变量的值为 42。这是单例相对于简单对象的优势:number
存储在单例中的所有值都可以从“任何地方”访问。
静态类
目的是不同的,这里的优点是使用对象而不必创建它。
例如:
public static class MyStaticClass {
public static void sayHello() {
System.out.println("Hello");
}
}
现在,您可以通过调用从任何类中使用 sayHello() 方法:
MyStaticClass.sayHello();