0

そのため、プレイヤーのスキル ダメージがスキル レベルと武器の熟練度によって決まるゲームを作成しています。2 つの値は XML ドキュメントに格納されており、DOM を使用して値を取得し、それらの合計をコンソールに出力しようとしています。

public class Damage {

    public String skillName = "Bash"; //name of the skill

    Xml config = new Xml("C:/character.xml","config");//part of the XML retrieving
    Xml version = config.child("Character");//another part of the XML retrieving

    int mastery = version.integer("Mastery"); //mastery of the skill
    int skillLevel = version.integer("skillName");//skill level 
    int skillDamage = mastery + skillLevel; //adding the two values together

public static void main(String[] args) {    
    System.out.println(skillDamage);
}

}

このコードを実行すると、静的 Main メソッドに非静的変数を含めることはできないことがわかります。ただし、変数の int の前に静的タグを配置すると、結果は 0 になります。

私の質問は次のとおりです。変数を静的にしながら、2 つの XML 値の合計を生成するにはどうすればよいですか? どうにかして XML から非静的データを収集し、それを静的にしてから使用できますか?

4

4 に答える 4

2

非静的変数/メンバーを使用する場合は、最初に Damage クラスのインスタンスを作成する必要があります。メインメソッドを次のように配置します。

public static void main(String[] args) {    
    Damage dmg = new Damage();

    System.out.println(dmg.skillDamage);
}
于 2014-03-17T00:16:51.300 に答える
2

変数を静的にしたくないと思います。

1) スキルダメージをaにするpublic int

2) 次に、メイン メソッドでオブジェクトを作成します。

Damage d = new Damage();
System.out.println(d.skillDamage);

おそらく、skillDamage を次のようなメソッドにカプセル化するのが最善でしょう。

public int getSkillDamage(){...}
于 2014-03-17T00:16:55.783 に答える
2

試す

System.out.println(new Damage().skillDamage);

非静的クラス変数のインスタンスが必要なため

于 2014-03-17T00:16:27.953 に答える
1

class があると想像してくださいcowbertaや など、そのクラスのインスタンスを作成できますmilka。つまり、2 頭の牛がいて、その行動は class に基づいているということですcow

それが何を意味するかを定義するstaticと、それはstaticそのclassに依存するため、牛ごとに特定のアクションを定義することはできません。

「GameEngine」などの新しいクラスが必要です。そこに必要なものがすべて揃っている必要があり、次のようなもので作成する必要があります。GameEngine ge = new GameEngine();次に、次のようなメソッドを使用しますge.readXML();

于 2014-03-17T00:18:43.553 に答える