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;
        }
    }
  • 相关阅读:
    11、MyBatis教程之动态SQL
    10、MyBatis教程之一对多处理
    9、MyBatis教程之多对一处理
    8、MyBatis之使用注解开发
    7、MyBatis教程之分页实现
    6、MyBatis教程之日志实现
    5、MyBatis教程之ResultMap
    4、MyBatis教程之配置解析
    3、MyBatis教程之CURD操作
    Session的几种保存方式
  • 原文地址:https://www.cnblogs.com/nanfengashuai/p/14882935.html
Copyright © 2011-2022 走看看