构造函数有一个void返回类型?
例如
A级{
void A()//其中A是构造函数,返回类型是void,它是有效的
{
}
public static void main(string arg [])
A a = new A();
}
构造函数没有结果/返回类型。
如果将结果/返回类型添加到“构造函数”中,则将其转换为名称与类名相同的方法。 然后new
将无法使用它,并且方法中的任何this(...)
或super(...)
调用都将是语法错误。
对于你的例子,你不会真的得到一个错误。 这是因为Java会为A
...添加默认的无参数构造函数,因为您尚未实际定义任何构造函数。 你的例子中的new
实际上将使用默认的构造函数....
如果您将代码更改为:
class A {
void A() { System.err.println("hello"); }
public static void main(string arg[]) {
A a = new A();
}
}
并编译并运行它,你会发现它不会给你任何输出。 删除void
,你会看到输出。
所以这里A()作为一种方法工作
它>>是“一种方法。 但它不是“工作”。 正如我的例子所显示的......该方法根本没有被调用。
你很困惑为什么你的代码编译。 这是因为A()
实际上并不是一个构造函数,而是一种方法(不幸的是它与该类具有相同的名称)。 类A
有一个由main
使用的隐式默认构造函数。 方法A()
不使用。
正如其他人指出的那样,构造函数没有返回类型。
链接地址: http://www.djcxy.com/p/49633.html