我们可以在 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