1

Slick2d を使用して Java で最初のゲームを作成しており、クラス プレーンを作成しました。(私はJavaも初めてです)

クラスの Image クラスから拡張するのが正しいのか、それともクラスで public Image 属性を使用した方がよいのかわかりません (プロジェクトの残りのメソッドに簡単にアクセスできるようにするために public )

import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;

public class Plane extends Image{
private float x;
private float y;

public Plane(String path, float x, float y) throws SlickException{
    super(path);
    this.x = x;
    this.y = y;

}

    public float getX(){
    return x;
}

public float getY(){
    return y;
}

public void move(float hip){             
    float rotation = this.getRotation();
    x+= hip * Math.sin(Math.toRadians(rotation));
    y-= hip * Math.cos(Math.toRadians(rotation));
}

}
4

2 に答える 2

5

slick2d についてはわかりませんが、クラスは拡張するべきではなくImage、画像属性を持つべきだと思います。拡張は、「平面イメージである」と言う方法ですが、通常はそうではなく、平面にはテクスチャ/イメージがあります。

さらに、イメージはパブリックではなく、保護/プライベートであり、パブリックのゲッターとセッターによってアクセスされる必要があります。そうすることで、カプセル化を増やし、イメージ自体を公開するときに発生する可能性のある問題を防ぐことができます。

于 2012-04-02T20:46:48.533 に答える
0

クラスが Image を拡張する場合、技術的にはクラスは Image クラスのすべてのプロパティを継承し、理論上は Image になります。

あなたのコードから、次のいずれかをお勧めします。

  1. Image を拡張する代わりに、クラスに Image 変数を作成するだけです。
  2. Image を拡張し、この Image を使用する別のクラスを作成します。
于 2012-04-02T21:05:46.460 に答える