【发布时间】:2020-03-26 00:06:32
【问题描述】:
背景
我已经声明了一个名为villainCharacteristics 的二维数组。每行代表一个不同的反派。
它由 3 列(整数类型)组成,表示 HP、BulletDamage 和 FireWeakness 的战斗值。
Villains类封装了这3个战斗变量,包括
设置器,以便为它们分配值。
我正在尝试什么
我尝试使用for 循环将具有战斗值的每一行从数组分配给不同的反派,因此我实例化了 5 个数组行和 5 个反派对象。
预期结果
为了澄清,一个例子是:
恶棍
1,其HP应为0、2的 bulletDamage 和1的 fireWeakness。
问题及代码
但是,当尝试打印这些值时,它不起作用。
public class WesternStory {
//setting characteristics to each villain
public static void main(String[] arguments) {
int[][] villainCharacteristics = {{0,1,1},
{5,2,1},
{10,3,2},
{15,4,2},
{20,5,3}};
Villains[] villainArray = new Villains[5]; //instantiated an array of 5 villain objects
for(int i = 0; i < villainArray.length; i++){
villainArray[i] = new Villains();
}
for(int i = 0; i < 5; i++) { //initialises the different combat variables from the 2D array to each villain.
villainArray[i].setHP = villainCharacteristics[i][0]; //I get an error here
villainArray[i].setBulletDamage = villainCharacteristics[i][1]; //error
villainArray[i].setFireWeakness = villainCharacteristics[i][2]; //error
System.out.println(villainArray[0].fireWeakness); //trying to print the value of fireWeakness within the first stored villain object.
}
Source code of Class Villains
public class Villains {
//attacking variables:
private int hp;
private int bulletDamage;
private int fireWeakness;
private int coins;
//attack getters
public int getHp(){
return hp;
}
public int getBulletDamage(){
return bulletDamage;
}
public int getFireWeakness(){
return fireWeakness;
}
public int getCoins() {
return coins;
}
//attack setters
public void setHp(int hp){
this.hp = hp;
}
public void setBulletDamage(int bulletDamage){
this.bulletDamage = bulletDamage;
}
public void setFireWeakness(int fireWeakness){
this.fireWeakness = fireWeakness;
}
【问题讨论】:
-
调用方法的语法是
variable.method(arguments)。不是variable.method = arguments -
如果
it doesn't work,你能解释一下你得到了什么错误信息吗?它是编译还是有警告/错误?然后我们需要知道它们,以及Villains类的源代码。 -
增加了Class Villains的源代码。 @hc_dev
标签: java arrays loops object iteration