Fork me on GitHub

为什么构造器私有之后不能创建对象了?

在Java中,我们可以构造方法,而构造方法又分为有参和无参构造方法:

/*   无参数的构造方法,如果类中无构造方法,则默认就有一个无参的构造方法,如果类中有带参的构造方法,则默
 *    的构造方法就没有了
 */
    private student(){}

    student(){}

    public student(){}

//    带参数的构造方法
public student(String name,String cardID){
        this.name = name;
        this.cardID = cardID;
    }

而在类中还会默认有一个方法名称和类名称一样的一个无参构造方法,称作“构造器”,这个构造器的作用就是创建一个类的实例,并且初始化这个实例。

当然,如果我们手动的将这个构造器用“private”修饰,将之私有之后,便不能初始化实例了,这样,用户也就不能再自己新建一个对象了。

这个方法可以用于“单例设计模式”,即只能有一个对象。

//饿汉式
//不让用户去自主的创建实例对象,而是自己创建好实例对象,让用户通过设置好的方法去调用
class Singleton{
    private static Singleton s = new Singleton();
    private Singleton(){}//直接把构造器私有化
    public ststic Singleton getInstance(){
        return s;
}
}

//懒汉式
class Singleton{
    private static Singleton s;
    private Singleton(){}//构造器私有
    public ststic Singleton getInstance(){
        if(s == null){
            s = new Singleton();
        }
        return s;
    }
}

 

posted @ 2021-06-14 18:07  Blueshadow^_^  阅读(506)  评论(0编辑  收藏  举报