在这个实例中,我们将学习用Java实现私有构造函数。
要理解此示例,您应该了解以下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类中,我们使用类名调用该方法。
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()方法。