Java 中的ideahub私有构造函数和单例类

添加时间:2022-02-08 19:56:15

来源:

浏览:

我们首先分析以下问题:


我们可以有ideahub私有构造函数吗?


正如您可以轻松猜到的,就像任何方法一样,我们可以为构造函数提供访问说明符。如果它是私有的,那么它只能在类内部访问。


我们需要这样的“私有构造函数”吗?


我们可以在多种场景中使用私有构造函数。主要的是


内部构造函数链接

单例类设计模式

什么是单例类?


顾名思义,如果一个类将该类的对象数限制为一个,则称该类为单例类。


对于这样的类,我们不能有多个对象。


单例类广泛用于网络和数据库连接等概念。


单例类的设计模式:


单例类的构造函数是私有的,因此必须有另一种方法来获取该类的实例。使用类成员实例和返回类成员的工厂方法解决了这个问题。


以下是 java 中的一个示例,说明了相同的内容:



// Java program to demonstrate implementation of Singleton 

// pattern using private constructors.

import java.io.*;

  

class MySingleton

{

    static MySingleton instance = null;

    public int x = 10;

    

    // private constructor can't be accessed outside the class

    private MySingleton() {  }

   

    // Factory method to provide the users with instances

    static public MySingleton getInstance()

    {

        if (instance == null)        

             instance = new MySingleton();

   

        return instance;

    } 

}

  

// Driver Class

class Main

{

   public static void main(String args[])    

   {

       MySingleton a = MySingleton.getInstance();

       MySingleton b = MySingleton.getInstance();

       a.x = a.x + 10;

       System.out.println("Value of a.x = " + a.x);

       System.out.println("Value of b.x = " + b.x);

   }    

}

输出:


斧头的价值 = 20

bx 的值 = 20

我们改变了 ax 的值,bx 的值也得到了更新,因为 'a' 和 'b' 都指向同一个对象,即它们是单例类的对象。


用户名 Name
评论 Comment

联系我们

/ CONTACT US

地 址:四川省成都市航空路丰德国际广场

邮政编码:610000

电 话:18215660330

传 真:18215660330

手机:18215660330

邮 箱:179001057@qq.com

投诉邮 箱:179001057@qq.com

姓名Name
标题Title
邮 箱Emali
联系电话Tel
内容Content