繁体   English   中英

防止创建对象类

[英]Preventing object class creation

我一直在阅读有关构造函数的文章 ,那里写的是:

公共类可以通过声明至少一个构造函数,防止创建具有公共访问权限的默认构造函数以及不声明任何公共构造函数来阻止在其包之外创建实例。

我对声明没有公共构造函数感到困惑。 这是因为,如果我们根本不声明任何构造函数,则隐式声明的默认构造函数将使用该类的访问修饰符隐式声明。 这意味着,如果将该类声明为public,则默认构造函数也将是public。 那就是我们可以在包外使用它(在包外创建实例)。

您错过了这一点:

通过声明至少一个构造函数

这就是阻止创建默认构造函数的原因。

给出的示例具有默认访问(包访问)构造函数:

PackageOnly() { }

...因此满足两个条件:a)声明至少一个构造函数; b)它声明没有公共构造函数。

不可以,该类可以公开,但是构造函数只能针对包访问protected ,也可以是private -主要与工厂静态方法一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM