我想知道是否可以使用void返回类型的构造函数,如下例所示.
例如
class A
{
void A(){} //where A is constructor and for which return type is void
public static void main(string arg[]){
A a = new A();
}
}
Run Code Online (Sandbox Code Playgroud)
构造函数没有结果/返回类型.
如果将结果/返回类型添加到"构造函数",则将其转换为名称与类名相同的方法.然后new将无法使用它,并且方法中的任何this(...)或super(...)调用将是语法错误.
对于您的示例,您实际上不会收到错误.这是因为Java将为...添加默认的no-args构造函数,A因为您实际上没有定义任何构造函数.在new你的榜样将实际使用默认构造函数....
如果您将代码更改为:
class A {
void A() { System.err.println("hello"); }
public static void main(string arg[]) {
A a = new A();
}
}
Run Code Online (Sandbox Code Playgroud)
编译并运行它,你应该看到它没有给你任何输出.删除void,您将看到输出.
所以这里A()作为一种方法
它>>是<<一种方法.但它并非"有效".正如我的示例所示版本......根本没有调用该方法.