如何从同一类的另一个对象中调用变量
来源:爱站网时间:2021-09-16编辑:网友分享
import java.util.Random; public class Character {//实例变量-变量名私有字符串_name;私人双级;私人双人房; ...
问题描述
import java.util.Random;
public class Character
{
// instance variables - vervang deze door jouw variabelen
private String _name;
private double _level;
private double _strenght;
private double _speed;
private double _defense;
private double _currenthp;
private double _maxhp;
/**
* Voorbeeld van een method - schrijf hier jouw comment
*
* @param y deze method krijgt deze parameter mee in de aanroep
* @return deze method geeft de som van x en y terug
*/
public Character()
{
}
public Character(String name,double level)
{
// schrijf hier jouw code
_name = name;
_level = level;
Random rand = new Random();
//level voor het berekenen van skills
int lvl = (int)level;
//stenght en speed parameter voor random
int stsplvl = 12*lvl - 8*lvl;
//defense parameter voor random
int deflvl = 6*lvl - 4*lvl;
//hp parameter voor random
int hplvl = 30*lvl - 20*lvl;
//Strenght berekenen
double st = (double)rand.nextInt(stsplvl);
st = st + 8*lvl;
_strenght = st;
//Speed berekenen
double sp = (double)rand.nextInt(stsplvl);
sp = sp + 8*lvl;
_speed = sp;
//Defense berekenen
double def = (double)rand.nextInt(deflvl);
def = def + 4*lvl;
_defense = def;
//Hp berekenen
double hp = (double)rand.nextInt(hplvl);
hp = hp + 20*lvl;
_currenthp = hp;
_maxhp = hp;
}
public void Character(String name,double level)
{
_name = name;
_level = level;
}
public void ploth()
{
System.out.println(_name + ": " + _currenthp + " / " + _maxhp + " HP");
}
public int attack(Character _other)
{
int defe = super (double._other _defense);
Random rando = new Random();
//_strenght is een double
int damcalc = (int)(1.2 * _strenght - 0.8 * _strenght);
int netdam = rando.nextInt(damcalc);
int totdam = (int)(netdam + 0.8*_strenght);
int enddam = totdam - defe;
}
}
因此,在最后一个return语句中,我试图获取另一个对象(被攻击的字符)的防御变量。我正在尝试根据此角色的力量统计来获取随机数,然后创建伤害统计。之后,我会造成伤害-防御(来自其他角色)。有人知道我为此使用什么代码吗? PS:请不要害怕这是我们最近在学校学到的东西。
解决方法:
根据您的描述,您希望您的方法attack
返回enddam
如下:
public int attack(Character _other)
{
int defe = (int)_other._defense;
Random rando = new Random();
//_strenght is een double
int damcalc = (int)(1.2 * _strenght - 0.8 * _strenght);
int netdam = rando.nextInt(damcalc);
int totdam = (int)(netdam + 0.8*_strenght);
int enddam = totdam - defe;
return enddam;
}
删除void
方法Character
,如果它是一个构造函数,则您已经具有相同的签名。