zoukankan      html  css  js  c++  java
  • 为什么构造器私有之后不能创建对象了?

    在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;
        }
    }
  • 相关阅读:
    html设置360兼容/极速模式
    es查询备忘录
    TypeError: __init__() got an unexpected keyword argument 'strict'
    pandas处理csv
    scrapy中cookie处理
    滑动验证码破解(一)
    python 自定义属性访问 __setattr__, __getattr__,__getattribute__, __call__
    数据库的增删改、单表查询
    库的操作,表的操作,数据类型,完整性约束
    Mysql常用命令(二)
  • 原文地址:https://www.cnblogs.com/nanfengashuai/p/14882935.html
Copyright © 2011-2022 走看看