/**
* file: singleton1.java
* ----------------------------
* 这段代码实现的是构造函数私有化
*
* 一个类的构造方法被私有化之后,则只能从其类的内部取得实例化对象,
* 那么此时 要考虑的问题是如何把内部生成的instanace对象拿到外部来,
* 这样外部就可以直接 通过此对象进行实例化。 正常情况下,instance属性
* 只能通过Singleton类的实例化对象才可以进行调用,如果 在没有实例化对象
* 的时候依然可以取得instance对象,则就需要将instance声明成static 访问类型,
* 因为使用static声明的变量,可以直接使用类名称进行访问。
*
* 使用构造方法私有化的目的是不不希望一个类产生过多的对象的话,则必须使用单态设计模式,
* 而且使用单态设计模式 在以后的JAVA学习中会经常碰到,因为在JAVA的支持的类库中,
* 大量的采用了此种设计模式。 所谓的单态就是在入口处(构造方法)限制了对像的实例化操作。
*
* 单态设计模式可以理解成一个应用程序有许多个快捷方式。其实真正的程序只有一个。
*
* @author luoriver
*/
import sun.security.jca.GetInstance.Instance;
class Singleton {
static Singleton instance = new Singleton(); // 在内部产生本类的实例化对象
public static Singleton getInstance() { // 通过静态方法取得instance对象
return instance;
}
private Singleton() { // 此处将构造方法进行封装,私有化
}
public void print() { // 打印信息
System.out.println("Hello World!!!");
}
}
public class Constructor_private {
public static void main(String args[]) {
Singleton s1 = null; // 声明对象
/*
* 一般在调用static属性的时候最好是使用类名称直接调用, 采用“类名称.属性”的形式调用
*/
s1 = Singleton.getInstance(); // 取得实例化对象
s1.print(); // 调用方法
}
}
构造函数私有化
最新推荐文章于 2023-06-28 15:51:24 发布