为什么提供私有的构造器能保证一个类只有一个实例(有待深入)

1.在我们新建一个类的对象的时候,构造器创建对象后会自动被调用,发生在其他类成员被设置为默认初始值之后,当然如果有字段初始器和初始化块的话,构造器的调用会发生在此之后。 构造器的主要作用是在new将对象的引用返回之前初始化对象
 
2.其访问权限是private,于是它只能被包含它的类自身所访问,而无法在类的外部调用,故而可以阻止对象的生成。所以,如果一个类只有一个私有构造器,而没有任何公有构造器,是无法生成任何对象的。
 
3.那么无法生成对象的带有私有构造器的类究竟有什么作用呢?这样的类在实际应用中最常用的是作为工具类,如字符串的验证、枚举转换之类的,通常只做成静态接口被外部调用即可。这里先插入一点关于静态方法的说明。静态方法是用static关键字声明的方法,可以用类来直接调用而无需用从类中实例化出来的具体对象来调用,因此这样的方法也被称为类方法。
 
4.那么在外部使用的时候,只需要通过类名,而不是对象实例来调用validataString方法,如A.validataString(str);可以直接调用此方法。阻止生成对象可以防止不可预期的结果。

猜你喜欢

转载自www.cnblogs.com/wzdnwyyu/p/11082215.html