构造函数不工作java

时间:2015-10-01 12:27:07

标签: java constructor

如果我尝试将参数放在以下行

,则会出错
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);
    }

}

5 个答案:

答案 0 :(得分:4)

double[] Sum(int num1,int num2, int num3) 

不是构造函数

你希望改为:

public Sum(int num1,int num2, int num3) 

这是一个构造函数的例子:

http://www.homeandlearn.co.uk/java/class_constructor.html

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