如果我尝试将参数放在以下行
,则会出错Sum s1 = new Sum(1,5,6);
当存在名为Sum with 3 parameters
的构造函数时,为什么会出现此错误package test;
class Sum {
double num1,num2,num3;
double[] result = new double[4];
double[] Sum(int num1,int num2, int num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
result[0] = num1;
result[1] = num2;
result[2] = num3;
result[4] = num1+ num2 + num3;
return result;
}
}
public class Test {
public static void main(String[] args) {
Sum s1 = new Sum(1,5,6);
}
}
答案 0 :(得分:4)
double[] Sum(int num1,int num2, int num3)
不是构造函数
你希望改为:
public Sum(int num1,int num2, int num3)
这是一个构造函数的例子:
答案 1 :(得分:3)
你的构造函数有返回类型,Constructor没有return语句。你需要改变
public Sum(int num1,int num2, int num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
result[0] = num1;
result[1] = num2;
result[2] = num3;
result[3] = num1+ num2 + num3;
}
答案 2 :(得分:1)
这是错误的(长度为4的数组的索引从0到3):
result[4] = num1+ num2 + num3;
更改为
result[3] = num1+ num2 + num3;
除此之外,构造函数不应该有返回值。
更改
double[] Sum(int num1,int num2, int num3)
到
Sum(int num1,int num2, int num3)
并删除return语句。
总结一下,构造函数应如下所示:
Sum(int num1,int num2, int num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
result[0] = num1;
result[1] = num2;
result[2] = num3;
result[3] = num1+ num2 + num3;
}
答案 3 :(得分:0)
构造函数不返回任何值。
构造函数不支持任何返回类型。甚至无效。
默认情况下,隐式返回类型是声明它的类类型。
答案 4 :(得分:0)
你应该创建一个带有3个int参数的构造函数,如下所示:
...
private int num1, num2, num3;
public Sum(int a, int b, int c) {
this.num1 = a;
this.num2 = b;
this.num3 = c;
}