2012-08-24 104 views
0
package mainData; 

public class Hello{ 
    public void Hello(String sData, int ... nAges){ 
     for(int x : nAges){ 
      System.out.println(sData + " " + x); 
     } 
    } 

    public static void main(String args[]){ 
     Hello ages = new Hello("Age: ", 5, 6, 7, 8); 
    } 
} 

当我更改构造函数(Hello> Hello2)此代码运行时没有问题。但为什么这个代码不工作?为什么不工作的java代码?

回答

9

您正在定义返回类型为void的称为Hello的方法。 A constructor确实不是有返回类型;改用以下内容:

public Hello(String sData, int ... nAges) { 
    for (int x : nAges) { 
     System.out.println(sData + " " + x); 
    } 
} 
+0

附注:很少有情况下,你应该在构造函数中完成许多工作。 – oldrinb

2

从你的构造,and it should work删除voidIf you give a return type,那么你正在创建一个方法,而不是构造函数。

我怀疑你的代码不是当你将Hello重命名为Hello2时没有问题。它可以编译并执行,但不会输出nAges参数。请注意,编译不是正确性的充分测试。

+0

oooow那是真的谢谢你;) – kibar