【发布时间】:2020-04-05 08:22:42
【问题描述】:
我的代码是:
public class Q2Client {
public static void main(String[] args) {
Q2 newq2 = new Q2(5);
}
}
class Q2 {
int x;
public void Q2 (int y) {
int x = y;
}
}
我在创建 newq2 时收到关于不接受整数(必需:无参数)的错误,但 Q2 显然需要一个整数。当我删除 Q2 类中的 void 时,它不会给我错误并且运行良好。 void导致参数(int y)无效怎么办?
【问题讨论】:
-
您正在尝试将方法用作构造函数。从
Q2的签名中删除单词void。此外,您正在创建一个局部变量x,它隐藏了类变量x -
只需跳过
public void Q2 (int y)中的void,您就可以将该方法设置为可以由new Q2(5)调用的构造函数。现在 Q2 只有默认构造函数,没有参数,因此问题。 -
在java中,如果你创建一个与类同名的方法,它是一个“构造函数”而不是一个常规方法。它创建 Q2 类的一个新实例,并自动返回它(因此您无需选择返回类型。)
标签: java class object methods parameters