我是java新手并试图掌握有关默认构造函数头的概念。
Circle中第一个构造函数的标题是:
public Circle(String label, int radius)
如果有人决定将默认构造函数添加到类中。这个默认构造函数的标题是什么?
我看过网上但没有真正看到简洁的答案。
答案 0 :(得分:2)
如果有人决定将默认构造函数添加到类中。
您不决定添加默认构造函数。如果您根本没有指定任何构造函数,编译器会为您添加一个。
它添加的那个由JLS§8.8.9定义:
如果类不包含构造函数声明,则隐式声明默认构造函数。顶级类,成员类或本地类的默认构造函数的形式如下:
默认构造函数与类具有相同的可访问性(第6.6节)。
默认构造函数没有形式参数,除非在非私有内部成员类中,默认构造函数隐式声明一个形式参数,表示该类的直接封闭实例(§8.8.1,§15.9。 2,§15.9.3)。
默认构造函数没有throws子句。
如果声明的类是原始类Object,则默认构造函数具有空体。否则,默认构造函数只调用不带参数的超类构造函数。
因此,如果Circle
是公开的,那么默认的签名将是:
public Circle()
例如,完整生成的版本是:
public Circle() {
super();
}
答案 1 :(得分:0)
请记住,只有在另一个构造函数不存在的情况下才会添加默认构造函数。因此,如果类包含 public Circle(String label,int radius) ,则编译器不会添加任何默认构造函数。如果需要,您必须自己显式添加此构造函数。