跳到主要内容

Java程序实现私有构造函数

要理解这个例子,你应该掌握以下 Java 编程 主题的知识:

示例 1:Java 程序创建私有构造函数

class Test {

// 创建私有构造函数
private Test() {
System.out.println("这是一个私有构造函数。");
}

// 创建一个公共静态方法
public static void instanceMethod() {

// 创建 Test 类的一个实例
Test obj = new Test();
}

}

class Main {

public static void main(String[] args) {

// 调用 instanceMethod()
Test.instanceMethod();
}
}

输出

这是一个私有构造函数。

在上面的例子中,我们创建了 Test 类的一个私有构造函数。因此,我们不能在类外部创建 Test 类的对象。

这就是为什么我们在类内部创建了一个名为 instanceMethod()public static 方法来创建 Test 类的对象。然后在 Main 类中,我们使用类名调用该方法。

示例 2:使用私有构造函数的 Java 单例设计模式

Java 单例设计模式确保一个类只有一个实例。为了实现这一点,我们使用私有构造函数。

class Language {

// 创建一个类类型的公共静态变量
private static Language language;

// 私有构造函数
private Language() {
System.out.println("进入私有构造函数");
}

// 公共静态方法
public static Language getInstance() {

// 如果对象尚未创建,则创建对象
if(language == null) {
language = new Language();
}

// 返回单例对象
return language;
}

public void display() {
System.out.println("已实现单例模式");
}
}

class Main {
public static void main(String[] args) {
Language db1;

// 调用 getInstance 方法
db1 = Language.getInstance();

db1.display();
}
}

输出

进入私有构造函数
已实现单例模式

在上面的例子中,我们创建了一个名为 Language 的类。该类包含:

  • language - 类型为 private 的类类型变量
  • Language() - private 构造函数
  • getInstance() - 类类型的 public static 方法
  • display() - public 方法

由于构造函数是 private 的,我们无法从外部类创建 Language 的对象。因此,我们在 getInstance() 方法内部创建了类的对象。

同时,我们设置了条件,以便只创建一个对象。该方法返回该对象。

注意这一行:

db1 = Language.getInstance();

这里,

  • db1Language 类型的变量
  • Language.getInstance() - 调用 getInstance() 方法

由于 getInstance() 返回 Language 类的对象,因此 db1 变量被赋值为返回的对象。

最后,我们使用该对象调用了 display() 方法。