我们可以在 Java 中拥有私有的构造函数吗?

java 8object oriented programmingprogramming

构造函数用于在创建对象时对其进行初始化。它在语法上类似于方法。不同之处在于构造函数与其类同名,并且没有返回类型。

无需显式调用构造函数,这些构造函数会在实例化时自动调用。

构造函数允许的访问说明符/修饰符

构造函数允许使用修饰符 public、protected 和 private。

我们可以在 Java 中创建单例类时使用私有构造函数。单例的目的是控制对象的创建,将对象的数量限制为只有一个。由于只有一个单例实例,因此单例的任何实例字段每个类只会出现一次,就像静态字段一样。单例通常控制对资源的访问,例如数据库连接或套接字。

访问私有构造函数

要访问私有构造函数(一种方法),请定义一个公共和静态方法,该方法创建并返回类的对象(具有私有构造函数)。

现在您可以通过调用此方法获取实例。

示例

在下面的 Java 程序中,我们有一个名为 Student 的类,其构造函数是私有的。

在 Student 类中,我们有一个名为 getInstance() 的方法,它既是公共的又是静态的。此方法创建 Student 类的对象并返回它。

从另一个类中,我们调用此 (getInstance()) 方法,并使用获得的实例/对象调用 Student 类的 display() 方法。

class Student{
   private String name;
   private int age;
   private Student(){
      this.name = "Raju";
      this.age = 20;
   }
   public void display(){
      System.out.println("Name of the Student: "+this.name );
      System.out.println("Age of the Student: "+this.age );
   }
   public static Student getInstance() {
      Student object = new Student();
      return object;
   }
}
public class PrivateConstructorExample{
   public static void main(String args[]) {
      Student obj = Student.getInstance();
      obj.display();
   }
}

输出

Name of the Student: Raju
Age of the Student: 20

相关文章