java - 防止对象类创建

标签 java constructor

我一直在阅读 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/

相关文章:

java - 多线程同步问题

java - 尝试使用 FileWriter 写入输出文件

c++ - C++ 类是否具有默认构造函数以及在以下情况下调用哪些构造函数?

c# - 构造函数中的优雅参数

c# - 使用 Enumerable.Empty<T>() 而不是 new List<T>() 来初始化 IEnumerable<T> 是否更好?

java - 如何访问类的私有(private)构造函数?

java - 寻找哈密顿路径和哈密顿循环

java - Swagger with Spring Boot 2.0 导致 404 错误页面

java - if、else if、else 语句的功能性和可读性

java - 使用具有不同行为的多个构造函数扩展类