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,请参阅以下链接: