如何创建其构造函数定义为private的类的对象

时间:2015-03-25 06:19:01

标签: java

我想在另一个类中创建Base类的对象,但Base类构造函数被定义为private

这是我的代码

public class Main
{
  public static void main(String ... args)
  {
    //Base objBase = new Base();
    //objBase.show();
  }
}


class Base
{
  private Base()
  {

  }

  public void show()
  {
     System.out.println("Base Class Show() Method");
  }
}

2 个答案:

答案 0 :(得分:4)

仍允许Base内的代码调用构造函数,这意味着可以用静态方法创建对象:

class Base
{
  private Base()
  {

  }

  public void show()
  {
     System.out.println("Base Class Show() Method");
  }

  public static Base createBase() {
      return new Base();
  }
}

然后调用方法创建一个对象:

Base objBase = Base.createBase();
objBase.show();

答案 1 :(得分:1)

如果类具有私有构造函数,则无法创建类的对象。可以构建对象,但只能在内部构建。就是这样。

在某些常见情况下,私有构造函数可能很有用:

  1. 单身
  2. 仅包含静态方法的类
  3. 仅包含常量的类
  4. 输入安全枚举
  5. 希望这有帮助。