构造函数有一个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

上一篇: constructor have include a void return type?

下一篇: purpose of String args[] in main method in java