Ich mache ein einfaches Spiel. Wenn ich den Kampf-Methode aufrufen, die durch das Zeichen erhalten Schaden, wenn er getroffen wird, ist seine eigene Schädigungsvariable Zum Beispiel Knight- Gesundheit: 100 Schaden: 20Wie verwende ich eine Instanzvariable eines Objekts auf einem anderen Objekt? Java
Soldaten Gesundheit: 100 Schaden: 10
, wenn ich rufe meine Methode ein der Ritter den Soldaten angreift und der Soldat greift die Ritter ihre Gesundheit wie folgt
Knight-> 80 Gesundheit Soldaten> 90 Gesundheit
wenn es andersrum sein sollte rund
Beispielcode
public abstract class BasicCharacter
{
private double health;
private double damage;
private double attackProbability;
private String name;
public BasicCharacter(double hp,double attp,double d, String n)
{
health=hp;
attackProbability=attp;
damage=d;
name=n;
}
public void setHealth(double hp)
{
health=hp;
}
public double getHealth()
{
return health;
}
public double getDamage()
{
return damage;
}
public void fight()
{
double prob=Math.random();
if(prob<attackProbability)
{
JOptionPane.showMessageDialog(null, name+" attacked for " + damage+ "\n" + name + " health " + health +" left");
health=health-damage;
}
else {
JOptionPane.showMessageDialog(null, name + " missed");
}
}
}
sowohl die Soldaten und die Ritter sind Subklassen von BasicCharacter
public class soldier extends BasicCharacter{}
dank
würde dies in dem gleichen Verfahren oder ein separates Verfahren, da alle Zeichen – thebigone
Teil dieser Klasse sind @thebigone Sie dies für BasicCharacter in der abstrakten Klasse implementieren können. Wer also BasicCharacter erweitert, wird diese Defaut-Implementierung haben. Sie können diese Methode in der Unterklasse dennoch überschreiben. – user3437460