演示单例类嵌套初始化的 Java 程序
原文:https://www . geeksforgeeks . org/Java-program-to-演示单例类的嵌套初始化/
一个单例类 只能产生一个单独的实例。每个 Singleton 类都有一个返回其对象的 getInstance 方法。当第一次调用 getInstance 方法时,类的一个对象被生成、存储,然后返回。在对 getInstance 的后续调用中,会返回之前生成的相同对象。
嵌套初始化可用于制作 Singleton 类。 在下面的实现中,我们使用嵌套初始化创建了一个 Singleton 类。进行以下观察:
- 这个类的默认 no-arg 构造函数是私有的,以防止其他类直接访问它并生成 Singleton 的对象。
- Singleton 类有一个静态公共 getInstance 方法,Singleton 作为返回类型。这将被其他类用来获取 Singleton 的对象。
- Singleton 类中有一个嵌套类。这个嵌套类有一个存储单例类对象的实例变量。
- getInstance 方法从该实例变量中获取值,并将其返回到调用站点。
使用嵌套初始化创建单例类的演示
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to demonstrate Singleton Class
// using Nested Initialization
class Singleton {
// a member variable
String str = "GFG!";
// Nested class has just 1 role i.e.creation of the
// Singleton object and storing it in Instance variable
private static class Nested {
static Singleton Instance = new Singleton();
}
// The getInstance() method returns the object of
// Singleton class stored in Instance variable
public static Singleton getInstance()
{
return Nested.Instance;
}
// no-argument constructor has to be made private
// this forces other classes to use getInstance() method
// in order to obtain the instance of Singleton class
private Singleton()
{
System.out.println("Object made");
}
}
public class Main {
public static void main(String[] args)
{
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
// make changes to obj1.str and output obj2.str
obj1.str = "geeksforgeeks!";
System.out.println(obj2.str);
}
}
Output
Object made
geeksforgeeks!
版权属于:月萌API www.moonapi.com,转载请注明出处