我一直在阅读 the article 关于构造函数以及其中所写的内容是:
A public class can likewise prevent the creation of instances outside its package by declaring at least one constructor, to prevent creation of a default constructor with public access, and by declaring no constructor that is public.
我对声明没有公开的构造函数感到困惑。这是因为,如果我们根本不声明任何构造函数,则隐式声明的默认构造函数将使用该类的访问修饰符隐式声明。这意味着如果类声明为公共(public),则默认构造函数也将是公共(public)的。那就是我们可以在包外使用它(在包外创建实例)。
最佳答案
你错过了这一点:
by declaring at least one constructor
这就是阻止创建默认构造函数的原因。
给出的示例有一个默认的访问(包访问)构造函数:
PackageOnly() { }
...所以它满足两个条件: a) 它声明了至少一个构造函数; b) 它没有声明公共(public)构造函数。
关于java - 防止对象类创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086773/