2017-04-20 11 views
-3

Dears、 Javaで新しいですが、別のクラスの新しい変数の正確な値を取得するコードを書くことができますか?私はint変数モンスターを計算させたいと思います。JAVA:別のクラスのNEW変数値を使用

ORG int // private static int monsterexp = elliador.monsters.getExp(monsters.exp);/ 私はそれを特定のモンスターに数えたいと思っています: プライベートstatic int monsterexp = elliador.monsters.getExp(モンスター。ゾンビ .exp); コードに "変数"変数を識別する方法を共有するとすれば、それは素晴らしいでしょう(私はそれにゾンビを書く必要はありませんが、ゾンビまたはヒドラを他のボイドに応じて選択することを意味します)それはモンスターを選ぶでしょう)。 おそらく私はすべて一緒にミキシングしています...ありがとうございます。

package elliador; 

import elliador.monsters; 


class source { 

private String name; 
private static int experience; 
private static int attack; 
private static int defense; 
private static int magic; 


private static int monsterexp = elliador.monsters.getExp(monsters.exp); 
private static int countofcreatures = 25; 
private static int earnexp = countofcreatures * monsterexp; 



public source(String name,int experience, int attack, int defense, int magic) { 

    this.name = name; 
    this.experience = experience; 
    this.attack = attack; 
    this.defense = defense; 
    this.magic = magic; 

} 

public void myhero() { 
    System.out.println("Name: " + getName() + " Experience: " + getExperience() + " Attack: " + getAttack() + " Defense: " + getDefense() + " Magic: " + getMagic()); 
} 

public String getName() { 
    return name; 
} 

public void setName() { 
    this.name = name; 
} 

public int getExperience() { 
    return experience; 
} 

public void setExperience() { 
    this.experience = experience + earnexp; 
} 

public int getAttack() { 
    return attack; 
} 

public void setAttack() { 
    this.attack = attack + 1; 
} 

public int getMagic() { 
    return magic; 
} 

public void setMagic() { 
    this.magic = magic + 1; 

} 

public int getDefense() { 
    return defense; 
} 

public void setDefense() { 
    this.defense = defense + 1; 
} 

} 

クラスモンスター

package elliador; 

import elliador.heroes; 

class monsters { 

private String name; 
private static int attack; 
private static int defense; 
private static int magic; 
public static int exp; 

public monsters(String name, int attack, int defense, int magic, int exp) { 

    this.name = name; 
    this.attack = attack; 
    this.defense = defense; 
    this.magic = magic; 
    this.exp = exp; 

} 

//*how to use specific monster in the int mentioned in description?*/ 
public static int getExp (int exp) { 
monsters zombie = new monsters("zombie",1,0,0,1); 
monsters hydra = new monsters("Hydra",20,12,3,2); 

return monsters.exp; 

} 



public static int getAttack (int attack) { 

monsters zombie = new monsters("zombie",1,0,0,1); 


//*monsters hydra = new monsters("Hydra",20,12,3,1); 
return monsters.attack; 
} 

} 

クラスヒーロー

package elliador; 

import elliador.monsters; 

public class heroes { 

    public static void main (String[] args) throws InterruptedException { 
    source Olsen; 
    Olsen = new source("Olsen",0,1,1,1); 



    Integer i = new Integer(5); 
    Integer i2 = new Integer (5); 
    System.out.println(i.equals(i2)); 
    Olsen.myhero(); 
    Olsen.setExperience(); 
    Olsen.myhero(); 
    Olsen.setExperience(); 
    Olsen.myhero(); 
    Olsen.setAttack(); 
    Olsen.setMagic(); 
    Olsen.myhero();  
    } 

    } 
+0

モンスターをコレクションに変換します。 – LazerBanana

+2

コードを正しくフォーマットしてください。まだすべてのコードをフォーマットしていないようです。 –

+1

[mcve]を入力してください。 –

答えて

0

単一モンスターを表すクラスを作成します。

package elliador; 

class Monster { 

private String name; 
private int attack; 
private int defense; 
private int magic; 
private int exp; 

public Monster(String name, int attack, int defense, int magic, int exp) { 

    this.name = name; 
    this.attack = attack; 
    this.defense = defense; 
    this.magic = magic; 
    this.exp = exp; 

} 

public int getExp ({ 
return exp; 
} 



public int getAttack() { 
return attack; 
} 

} 

カプセル化について読み、残りのゲッターを追加してください。

すべてのモンスターを含むコレクションを作成します。

List<Monster> monsters = new ArrayList<>(); 

追加モンスター

monsters.add(new Monster("Godzilla", 999, 999, 999, 999)); 

インデックス

monsters.get(0); 

することにより、特定のモンスターを取得したり、コレクションを拡張するクラスを作成し、名前などにより

をそれを得るためにgetメソッドをオーバーライドしたり、作成しますキーが名前であり、統計が属性のリストであるマップ。

ヒーローと同じように、Gameというクラスを作成して必要な処理を行うことができます。

PS。 Javaの規約では、クラス名は大文字で始まります。

+0

質問のコメントに書いたのと同じ問題:複数の「Monster」が作成された場合、静的変数は予期しない値につながります。 –

+0

すごく感謝します! – TommyTom

+0

静的な削除を忘れてしまった。 – LazerBanana

関連する問題