Java 试图使用另一个类中的变量
但空间属于另一类,称为玩家Java 试图使用另一个类中的变量,java,Java,但空间属于另一类,称为玩家 public class Boss{ public void Attack1(){ int randomspace = (int )(Math.random() * 3 + 1); System.out.println("Attacking space " + randomspace); if(space == randomspace){ //Something right here to kill the player
public class Boss{
public void Attack1(){
int randomspace = (int )(Math.random() * 3 + 1);
System.out.println("Attacking space " + randomspace);
if(space == randomspace){
//Something right here to kill the player
}
}
}
我考虑过创建一个单独的空间变量,并同时更改它们,但是Boss类如何知道何时与Player类同时递增/递减。为了简单起见,将其保存在一个类中会更容易
编辑:我猜出来了<代码>公共类Boss扩展了Player{,解决了我的问题使用参数。(并将方法小写)
老板会攻击一个空间
public class Player {
int space = 1;
}
如果你需要玩家,那么你真的应该使用一些抽象类,比如说Unit
,然后使用Hero
作为主要部分
那你就可以
public void attack(int space){
if(space == randomspace){
//Something right here to kill the player
}
理想情况下,unit.getSpace()
也可以来自某个Board
类,该类保存有关unit
类型的所有信息
然后,其他地方的逻辑是
boss.attack(player)
或boss.attack(player.getSpace())
为了在不同的类中使用变量,使用Setter和Getter方法。你有没有在谷歌上搜索过这个?粗略的搜索会发现许多重复项。我在网上搜索和钻研,找不到进一步的答案,Omore说,你的Boss类对空间变量一无所知,因为它属于Player类。您需要玩家类的实例才能访问玩家类的空间变量。修复了什么?这是否回答了您的问题?如果一个boss扩展了玩家,那么您正在检查随机空间是否是boss的当前空间?
public void attack(Unit unit){
if(unit.getSpace() == randomspace){
//Something right here to kill the player
}