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)、このコードは問題なく実行されます。しかし、なぜこのコードが機能しないのでしょうか?

4

2 に答える 2

9

Hello戻り値の型と呼ばれるメソッドを定義していますvoidコンストラクターには戻り値の型がありません代わりに次を使用します。

public Hello(String sData, int ... nAges) {
    for (int x : nAges) {
        System.out.println(sData + " " + x);
    }
}
于 2012-08-24T22:15:52.580 に答える
2

voidコンストラクターから削除すると、動作するはずです。戻り値の型を指定すると、コンストラクターではなくメソッドが作成されます。

に名前を変更すると、コードが問題なく実行されないのではないかと思います。コンパイルして実行できますが、引数は出力されません。コンパイルは正確さの十分なテストではないことに注意してください。HelloHello2nAges

于 2012-08-24T22:16:34.447 に答える