gpt4 book ai didi

java - 构造函数总是必须是公共(public)的吗?

转载 作者:IT老高 更新时间:2023-10-28 20:32:07 35 4
gpt4 key购买 nike

我的第一个问题是——

   class Explain() {
public Explain() {
}
}

构造函数应该总是声明为公共(public)的吗?

如果我创建一个 private 构造函数会怎样。

我总是看到构造函数是隐含的public。那么为什么 private 构造函数有用呢?还是根本没用。因为没有人可以调用它,或者永远不会创建一个对象(因为 private 构造函数)!这是我的第二个问题。

最佳答案

不,构造函数可以是publicprivateprotecteddefault (根本没有访问修饰符)。

使某些东西private 并不意味着没有人可以访问它。这只是意味着类(class)以外的任何人都无法访问它。所以 private 构造函数也很有用。

private 构造函数的用途之一是为单例类提供服务。单例类是将对象创建的数量限制为一个。使用 private 构造函数,我们可以确保一次不能创建多个对象。

示例 -

public class Database {

private static Database singleObject;
private int record;
private String name;

private Database(String n) {
name = n;
record = 0;
}

public static synchronized Database getInstance(String n) {
if (singleObject == null) {
singleObject = new Database(n);
}

return singleObject;
}

public void doSomething() {
System.out.println("Hello StackOverflow.");
}

public String getName() {
return name;
}
}

更多信息 access modifiers.

关于java - 构造函数总是必须是公共(public)的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995942/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com