Java 程序:实现私有构造函数

要理解此示例,您应了解以下Java编程主题


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

class Test {

  // create private constructor
  private Test () {
    System.out.println("This is a private constructor.");
  }

  // create a public static method
  public static void instanceMethod() {

    // create an instance of Test class
    Test obj = new Test();
  }

}

class Main {

  public static void main(String[] args) {

    // call the instanceMethod()
    Test.instanceMethod();
  }
}

输出

This is a private constructor.

在上面的示例中,我们创建了 Test 类的私有构造函数。因此,我们无法在类外部创建 Test 类的对象

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


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

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

class Language {

  // create a public static variable of class type
  private static Language language;

  // private constructor
  private Language() {
    System.out.println("Inside Private Constructor");
  }

  // public static method
  public static Language getInstance() {

     // create object if it's not already created
     if(language == null) {
        language = new Language();
     }

      // returns the singleton object
      return language;
  }

  public void display() {
      System.out.println("Singleton Pattern is achieved");
  }
}

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

     // call the getInstance method
     db1= Language.getInstance();

     db1.display();
  }
}

输出

Inside Private Constructor
Singleton Pattern is achieved

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

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

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

但是,我们设置了条件,确保只创建一个对象。并且,该方法返回该对象。

注意这行:

db1 = Language.getInstance();

这里,

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

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

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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战