gpt4 book ai didi

java - 声明和调用构造函数

转载 作者:行者123 更新时间:2023-11-29 07:11:22 25 4
gpt4 key购买 nike

下面的代码在第 4 行显示错误

class MyClass{

public MyClass(int a){ } //Line 2

public static void main(String a[]){
MyClass n = new MyClass(); //Line 4
System.out.print("TRUE");
}
}

但是,一旦我删除了第 2 行,它就会正常运行。虽然,我没有添加默认构造函数。为什么 ?

最佳答案

请记住,编译器 仅在您未提供任何显式构造函数时才为您的类提供默认构造函数。一旦声明了自己的构造函数、参数化构造函数或 0-arg,编译器就不会为您提供默认构造函数。

现在在你的代码中,你已经声明了一个参数化的构造函数,编译器不会给出一个默认的。所以,您实际上没有任何 0-arg 构造函数,因此您不能使用它。

once i remove line 2, it runs without any error. Although, I didn't add default constructor. Why ?

当然,如果您删除了第 2 行,那么您还没有声明任何显式构造函数,在这种情况下,编译器 添加了一个默认的 0-arg 构造函数,因此你的代码成功了。另请注意,默认构造函数 是编译器提供的。当您声明0-arg 构造函数时,它不称为默认,而只是一个0-arg 构造函数

因此,无论何时声明参数化构造函数,请确保还显式声明了 0-arg 构造函数,如果您当然要使用它的话。

public MyClass() {
}

关于java - 声明和调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13611034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com