私は内部クラスで動作するようにしようとしていますし、私それらについていくつかの質問 私はエラーを取得していないこのゲームオブジェクトのクラス構造でのJava - 内部クラス
import java.io.*;
public abstract class GameObject implements Serializable {
protected enum GAME_OBJECT_TYPE {SNARK, HINT, BONUS_ITEM, INVALID};
protected GAME_OBJECT_TYPE eGameObjectType;
protected GameObject() {
eGameObjectType = (GAME_OBJECT_TYPE.INVALID);
System.out.println("SOMETHING WENT WRONG");
}
public class Snark extends GameObject implements Serializable {
public Snark() {
eGameObjectType = (GAME_OBJECT_TYPE.SNARK);
System.out.println("SNARK LIVES HERE");
}
}
public class Hint extends GameObject implements Serializable {
public Hint() {
eGameObjectType = (GAME_OBJECT_TYPE.HINT);
System.out.println("HINT LIVES HERE");
}
}
}
を次のように私はゲームオブジェクトのクラスを持っていますが、唯一の方法Iエラーなしで私のGameFrameにスナークをインスタンス化することができますしかし、私は
import java.io.*;
public abstract class GameObject implements Serializable {
protected enum GAME_OBJECT_TYPE {SNARK, HINT, BONUS_ITEM, INVALID};
protected GAME_OBJECT_TYPE eGameObjectType;
protected GameObject() {
eGameObjectType = (GAME_OBJECT_TYPE.INVALID);
System.out.println("SOMETHING WENT WRONG");
}
}
public class Snark extends GameObject implements Serializable { // The public type Snark must be defined in its own file
public Snark() {
eGameObjectType = (GAME_OBJECT_TYPE.SNARK);
System.out.println("SNARK LIVES HERE");
}
}
public class Hint extends GameObject implements Serializable {
public Hint() {
eGameObjectType = (GAME_OBJECT_TYPE.HINT);
System.out.println("HINT LIVES HERE");
}
}
にゲームオブジェクトクラスを変更する場合
GameObject mySnark = new GameObject.Snark(); // all good
GameObject mySnark = new Snark(); // cannot be resolved
です
GameObject mySnark = new Snark(); // no errors
は私が再分割することができ、それぞれが再び独自のクラスにオブジェクトが、それは、これは非常に、現在Iクラスの数を減らすための方法かもしれないと思ったように私は今、私のGameFrameにスナークをインスタンス化することができます
持ってる。
誰かが私が間違っていることを理解するのに役立つことができますか?
は
さまざまなクラス(Snarkなど)をGameObjectに移動することで達成しようとしていることは何ですか? –
さて、コンパイラは正しいです。これらの型の内部クラスとは異なる構文を使用する必要があります。私はあなたが内部クラスを継承と混同しているかもしれないと思います。 2つは全く異なっています。 – markspace
コンパイラが正しい場合は、インスタンス化する際に内部クラスを完全修飾する必要があります。 –