为什么构造函数是公有的?
突然想到这个问题,没有百度到。
是因为在定义类的对象的时候对象要调用吗?
[解决办法]
构造函数非公有的类无法直接定义实例,因为定义实例可以看作是外部调用构造函数来构造出实例
构造函数可以非公有,配合专门负责new对象的公有静态函数来控制构造实例的次数,例如经典设计模式中的单例模式,就是禁止直接定义+静态函数只允许new一次来实现单例的
[解决办法]
看看这个
http://topic.csdn.net/u/20110809/16/c6a562ae-503b-43e0-84c5-76753ef6a838.html
[解决办法]
从规则上来说,构造函数并不一定要公有。
从实际应用来说,见楼上几位分析。
从设计模式角度来说,私有的构造函数+静态初始化方法(唯一性验证),是保持实例唯一性的有效方法。
[解决办法]
私有的构造函数定义的类,可以定义成工具类,只是类的成员函数是静态的!