0

このコードでは、「このメソッドは文字列型の結果を返す必要があります」というエラーが表示されます。また、私は .printf メソッドについて多くを見つけることができませんでした (教科書にあるのとまったく同じようにフォーマットする必要があったため、教科書から入手しました)。このメソッドは削除されましたか?

public String toString()
{
    System.out.println("Shown are the prices for " +
            "each seat. A 0 indicates the seat is " +
            "unavailable.");
    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            System.out.printf("%8d", seatArray[i][j]);
        }
    }
}
4

3 に答える 3

1
public String toString() // returns a String

returnこのメソッドの型はですStringが、return ステートメントはまったくありません。このメソッドから String を返す return ステートメントが必要です。を使用しても問題ありませんSystem.out.printf

public String toString()
{
    System.out.println("Shown are the prices for " +
            "each seat. A 0 indicates the seat is " +
            "unavailable.");
    for(int i = 0; i < 9; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            System.out.printf("%8d", seatArray[i][j]);
        }
    }
    return someString; // return statement is required as the method return type is String and not void
}

メソッドの名前をvoid使用すると、戻り値の型が であるクラスのメソッドがオーバーライドされるため、戻り値の型を に変更できないことに注意してください。メソッドの名前を変更して にするか、同じ名前を保持したい (および をオーバーライドしたい) 場合は、確実に return ステートメントが必要です。toString()toString()ObjectStringvoidObject.toString()

public void printArray() // Something like this

ええ、戻り値の型がvoidorStringであるかどうかにかかわらず、いつでも自分が行った方法で配列を出力できます。戻り値の型の場合は、メソッドで行った印刷とともにStringa を返す必要があります。String

于 2013-11-13T07:53:31.080 に答える