-1

クラスのオブジェクトの配列を定義しましたPlane。このような:

        Plane[] terminalOne = new Plane[] {
            new Plane(1, "Madrid", "Ryanair", "Airbus A300", "05.00"),
            new Plane(3, "Riga", "AirBaltic", "Boeing 737", "05.30")
            //ETC..
        };

オブジェクトを表示するなど、この配列から情報を操作/取得する方法を理解しようとしています。System.out.println(terminalOne);どのリターンを試し[Lairport.Plane;@322ba3e4ましたか (空港は私のパッケージです) これが何を意味するのかわかりませんが、最初のオブジェクトが返されたと思いますか? 私はそれをより読みやすくしようとし、Plane クラスとオブジェクト コンストラクターを定義するファイルに次の関数を追加しました。

    public void displayPlane() // display plane
    { 
        System.out.println();
        System.out.print("{" + flightID + "," + destination + "," + airline + "," + aircraft + "," + time + "}");
        System.out.println();
    }

オブジェクトに関する情報を次の形式で表示{.., .., .., .., ..}し、それをメイン ファイルに適用しようとしましたterminalOne.displayPlane();が、「シンボル、シンボルが見つかりません: メソッド displayPlane()、場所: タイプ Plane[] の変数 terminalOne」というコンパイラ エラーが発生しました。

検索、削除などのメソッドと一緒に、これらのメソッドを別のファイルで定義した LinkedLists を使用しました。配列に対してこのようなことを行うことはできますか?もしそうなら、正しい方法は何ですか?

4

2 に答える 2

2

terminalOneは配列であり、個々の平面ではありません。あなたが使用することができます:

for (Plane plane : terminalOne) {
    plane.displayPlane();
}

toString()...しかし、私は個人的に代わりにオーバーライドすることを検討しますPlane:

@Override public String toString() {
    return "{" + flightID + "," + destination + "," + airline + "," +
           aircraft + "," + time + "}";
}

それで:

for (Plane plane : terminalOne) {
    System.out.println(plane);
}
于 2013-11-02T08:42:26.023 に答える