代码之家  ›  专栏  ›  技术社区  ›  m_pGladiator

当类声明为包私有时,我们应该声明一个公共构造函数吗?

  •  16
  • m_pGladiator  · 技术社区  · 16 年前

    我认为在这种情况下,不需要声明公共构造函数,因为无论如何在包外部都不能访问类。但是当类只有包私有构造函数时,是否存在一些隐藏的影响?

    4 回复  |  直到 9 年前
        1
  •  24
  •   Jorn    16 年前

    不,您不必声明公共构造函数;包私有构造函数也同样可用。包外的类无论如何都不能使用构造函数,因为它们看不到类。

        2
  •  4
  •   Maarten Bodewes    9 年前

    如果类是package private,那么修饰符关键字指示的访问级别 public 连同违约 私人包 构造函数的访问级别是等效的。

    但是,如果在开发过程中更改了类的可见性,则可以指示您希望该方法具有的行为。当您打开一些以前是内部的API时,可能会发生这种情况。在这种情况下,将构造函数声明为package private看起来更为保守,因为您不会同时打开所有门。

        3
  •  -3
  •   anil    14 年前

    我们不能在私有类中使构造函数成为公共的,因为私有类不能被外部访问,并且它的方法都不能被访问,并且由于构造函数是特殊的成员函数,所以它也不能被外部访问,所以它不能被声明为公共的,因为它最终违反了类的私有定义。

        4
  •  -3
  •   Brigham    12 年前

    不能在类的私有部分中定义构造函数。编译器不允许这样做,因为主程序无法访问定义为private的成员。每当我们调用它时,只有在定义它的类或朋友标签中才能访问它。编译器将给出构造函数名,但它不可访问。