Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中私有构造函数的用途是什么?_Java_Static_Constructor_Abstract Class - Fatal编程技术网

java中私有构造函数的用途是什么?

java中私有构造函数的用途是什么?,java,static,constructor,abstract-class,Java,Static,Constructor,Abstract Class,私有构造函数不允许创建对象,例如下面是代码 class emp { private emp()//private constructor { } } public class privateconstructor { public static void main(String[] args) { emp e = new emp();//throws Error as constructor not visible } }

私有构造函数不允许创建对象,例如下面是代码

class emp
{
    private emp()//private constructor
    {

    }
}

public class privateconstructor
{

    public static void main(String[] args)
    {
        emp e = new emp();//throws Error as constructor not visible

    }

}
通过将类声明为抽象类,也可以防止用户创建对象。所以我的问题是为什么使用私有构造函数?
仅供参考:
虽然对象可以通过静态方法创建,例如

class emp
{
    private emp()//private constructor
    {

    }
    static emp createInstance()//static method
    {
        return new emp();//returns an instance
    }

    void disp()
    {
        System.out.println("member function called");
    }
}

public class privateconstructor
{

    public static void main(String[] args)
    {
        emp e = emp.createInstance();//creating object by static method  
        e.disp();

    }

}
输出:调用了成员函数

所以我的问题是为什么是私有构造函数

这样做是为了防止从任何其他类构造类。这通常用于实用程序类、单例或具有工厂方法而不是构造函数的类

所有
enum
类都有私有构造函数,它们对于实用程序类和单例类也很有用

所以我的问题是为什么是私有构造函数

这样做是为了防止从任何其他类构造类。这通常用于实用程序类、单例或具有工厂方法而不是构造函数的类


所有的
enum
类都有私有构造函数,它们也可以用于实用程序和单例类。

有些对象依赖于特定的对象。假设运行时类,其实例将依赖于系统的当前运行时环境。因此

Runtime run = new Runtime();  //java.lang.Runtime
运行时的对象由以下程序创建:

Runtime ru = Runtime.getRuntime();

因此,不允许像那样创建对象的类使用私有构造函数。

有些对象依赖于特定的对象。假设运行时类,其实例将依赖于系统的当前运行时环境。因此

Runtime run = new Runtime();  //java.lang.Runtime
运行时的对象由以下程序创建:

Runtime ru = Runtime.getRuntime();

因此,不允许像那样创建对象的类使用私有构造函数。

它可以确保没有人能够创建新实例(除非那个人知道反射),在需要类的一个实例时非常有用,如Singleton模式。它可以确保没有人能够创建新实例(除非那个人知道反射),当您需要一个类实例时非常有用,如Singleton模式。如果您现在不了解Singleton,请参阅以下链接:如果您现在不了解Singleton,请参阅以下链接: