2

プログラミングを上手にしようとしています。自分自身を教えるために愚かなゲームを構築することに取り組んでいるので、それはRPGタイプのようです。

メインの内側:

String selection = "Warrior";
    if(selection == "Warrior")
    {
        Warrior war = new Warrior();
        characterCreation(player, war, 75, 200, "Black", 150, 90, 25);
    }

一般的なキャラクターを作成するには:

private static void characterCreation(User player, Character type, int armour, int health, String colour, int height, int weight,
            int damage) {
        type.setType(type);

System.out.println("New "+ type.getType() +" Created!");

つまり、アイデアは、あなたがアイデアを得る戦士、ヒーラー、ウィザードを作成できるということです:)

Character.java

    private Character type;
    public Character getType() {
        return type;
    }
    public void setType(Character type) {
        this.type = type;
    }

次に、Characterクラスを拡張するWarrior.javaクラスを空にします。

印刷時に出力される出力は、New com.game.config.Warrior@6471d768 Created!です。

私はここで何が間違っているのですか?

ありがとう!

4

2 に答える 2

3

クラスにpublic String toString()意味のある実行可能なメソッドを与えます。これは、現在のオブジェクトとその状態を説明する文字列を返します。toString()表示されているのはオブジェクトのメソッドから返されるデフォルトの文字列であるため、これで「com.game.config.Warrior@6471d768」の問題が修正されます。

于 2012-06-09T21:35:26.463 に答える
2

使用しないでくださいselection == "Warrior"

使用するselection.equals("Warrior")

==は、オブジェクトの値ではなく参照を比較するためのものです

于 2012-06-09T21:29:29.390 に答える