Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序实现私有构造函数

Java 实例大全

在这个实例中,我们将学习用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()的公共静态方法,该方法用于创建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();
  }
}

输出结果

内部私有构造函数
实现了单例模式

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

  • language - 类类型 private 变量

  • Language() - private 构造函数

  • getInstance() - public static 类类型方法

  • display() - public 方法

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

但是,我们以仅创建一个对象的方式设置了条件。 并且,该方法返回对象。

注意这一行,

db1 = Language.getInstance();

这里,

  • db1 是 Language 类型的变量

  • Language.getInstance() - 调用方法getInstance()

由于getInstance()返回Language类的对象,因此为db1变量分配了返回的对象。

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

Java 实例大全