假设有一个类A.以下哪两个访问修饰符是构造函数的默认值?什么是显式构造函数访问修饰符?
public A()
{
private A()
{
//some code....
}
protected A()
{
//some code....
}
}
假设有一个类A.以下哪两个访问修饰符是构造函数的默认值?什么是显式构造函数访问修饰符?
public A()
{
private A()
{
//some code....
}
protected A()
{
//some code....
}
}
它意味着与函数和变量的修饰符完全相同,只是现在它指的是谁可以构造一个类的实例。
public
- 任何人都可以从代码中的任何位置调用构造函数。
private
- 无法从类外部构造 - 通常用于控制谁可以使用静态成员工厂方法实例化类。一个器件的应用的一个很好的例子发现here
protected
- 像private
但现在继承参与 - 任何子类工厂方法可以使用,因为现在他们可以调用此构造。
由于@dasblinkenlight提到,如果你不指定任何修改,那么他们默认到被package-private,这意味着他们只对包内的类可见。
为了完整起见,您可能想提及具有其默认访问权限的'A(){}',以供同一包中的成员使用。 – dasblinkenlight
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html –
如果您了解访问修饰符的含义,这里没有任何问题,如果您不需要查看它们在JLS中。不是一个真正的问题。 – EJP