1

Javaで迷路ゲームを作ろうとしています。

Explorerクラスはユーザーを表し、DrawableExplorerはユーザーをグラフィカルに表すコードです。DrawableExplorerは、以下を含むDrawableインターフェイスを実装します。

    import java.awt.Graphics;

    public abstract interface Drawable
    {
      public abstract void draw(Graphics paramGraphics);
    }

これは正常にコンパイルされますが、DrawableExplorerクラスが正しくない理由を理解できません。

    import java.awt.*;
    public class DrawableExplorer extends Explorer implements Drawable

{

    public DrawableExpolorer(Square location, Maze maze, String name)
        {
            public void draw(Graphics g)
                {
                    Square location = location();
                    get.setColor(Color.BLUE);
                    g.fillOval(loc.x() + 10, loc.y() + 10, 30, 30);

                }
        }
}

リターンタイプを要求していますが、私のメソッドは無効ではありませんか?

コンパイラのエラーメッセージには、「メソッド宣言が無効です。戻り型が必要です」と表示されます。

4

2 に答える 2

3

クラスを次のように宣言する必要があります。

public class DrawableExplorer extends Explorer implements Drawable

つまり、句は句のextends来る必要があります。implements

drawもう1つのエラーは、のコンストラクターの本体内でメソッドを宣言したことですDrawableExplorer。3つの引数を取るコンストラクターを定義した場合、通常はコンストラクター本体内でこれらを処理する必要があります(現在は無視しています)。たとえば、それらをインスタンス変数に割り当てることによって。

于 2010-02-09T23:40:21.723 に答える
0

コンストラクター内でメソッドを宣言することはできないと確信しています。コンパイラは何があるべきかさえ知らないので、それがあなたに与えることができる最初の明白なエラー修正をあなたに与えます。コンパイラは、あなたがやりたいことの全体像を見ていません。発生する最小の問題の解決策を提供するだけです。

于 2019-11-10T12:56:30.273 に答える