构造函数不能在java中工作

构造函数不能在java中工作,java,constructor,Java,Constructor,如果我试图将参数放在下一行,我会得到一个错误 Sum s1 = new Sum(1,5,6); 当有一个名为Sum的构造函数有3个参数时,为什么会出现这个错误 package test; class Sum { double num1,num2,num3; double[] result = new double[4]; double[] Sum(int num1,int num2, int num3) { this.num1 = num1;

如果我试图将参数放在下一行,我会得到一个错误

Sum s1 = new Sum(1,5,6);
当有一个名为Sum的构造函数有3个参数时,为什么会出现这个错误

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);
    }

}
这是错误的(长度为4的数组具有从0到3的索引):

改为

result[3] = num1+ num2 + num3;
除此之外,构造函数不应该有返回值

改变

double[] 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;
} 
不是构造函数

您希望改为使用此选项:

public Sum(int num1,int num2, int num3) 
以下是一个承包商的示例:


您的构造函数有返回类型,构造函数没有返回语句。你需要改变

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;
    } 

构造函数不返回任何值

构造函数不支持任何返回类型。甚至不是空的


默认情况下,隐式返回类型是声明它的类类型。

您应该创建包含3个int参数的构造函数,如下所示:

...
private int num1, num2, num3;

public Sum(int a, int b, int c) {
    this.num1 = a;
    this.num2 = b;
    this.num3 = c;
}

你比我快了一秒钟:德索里,伙计,我想我只是意外地编辑了你的答案谢谢…我怎么能忘记你应该更清楚,“一个错误”不是一个合适的错误描述。
public Sum(int num1,int num2, int num3) 
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;
    } 
...
private int num1, num2, num3;

public Sum(int a, int b, int c) {
    this.num1 = a;
    this.num2 = b;
    this.num3 = c;
}