0

假设有一个类 A。以下两个访问修饰符中哪一个是构造函数的默认访问修饰符?

public A()
{
    private A()
    {
         //some code....
    }

    protected A()
    {
         //some code....
    }
}
4

1 回答 1

6

它与函数和变量的修饰符的含义完全相同,只是现在它指的是谁可以构造类的实例。

public- 任何人都可以从代码中的任何位置调用构造函数。

private- 无法从类外部构造 - 通常用于控制谁可以使用静态成员工厂方法来实例化类。在这里找到的一个很好的应用示例

protected- 像private,但现在涉及继承 - 可以使用任何子类工厂方法,因为现在它们可以调用此构造函数。

正如@dasblinkenlight 提到的,如果您不指定任何修饰符,则它们默认package-private,这意味着它们仅对包内的类可见。

于 2013-01-06T03:05:32.820 回答