我无法弄清楚如何应用价值观

时间:2016-02-09 02:48:07

标签: java arrays variables object

如果我尝试将两个单独的int值应用于在字符串数组中输入的值,我将如何进行此操作?我尝试了很多方法,甚至是可能的。例如,我在一个单独的项目中测试了一小段代码:

public static void main(String [] args) {

    Cards gaI = new Cards("Example 1", "Attack", 5, "Defense", 5);
    Cards abI = new Cards("Example 2", "Attack", 5, "Defense", 10);
    Cards aII = new Cards("Example 3", "Attack", 5, "Defense", 10);

    Cards [] cards = new Cards [3];

    cards [0] = gaI; //
    cards [1] = abI;
    cards [2] = aII;

    //for (int i = 0; i < cards.length; i++){
        for (Cards c : cards){
            System.out.print(c);
        }
    }
}

我想要做的是设置两个不同的数组,或者只有一个数字值,并将其应用于上面的每个对象,为它们提供自己的设置值。仅仅使用每个Object更有意义,而不是将它们作为对象,只需将它们声明为变量,然后在同一个类中单独添加所有其他数据?让它们以适当的格式打印是很容易的部分。我希望能够使int值成为每张卡的永久值。类似于Yu-Gi-Oh卡。我希望我能正确地问这个问题。

1 个答案:

答案 0 :(得分:0)

您可以使用简单循环

同时迭代多个数组
int[] intValues1 = ...;
int[] intValues2 = ...;
String[] stringValues = ...;
// if you are sure the arrays have the same length, this will work OK for you
for (int i = 0; i < intValues1.length; i++) {
    Card c = new Card(stringValues[i], intValues1[i], intValues2[i]);
    ...
}

如果数组的长度不同,则需要调整循环条件,否则可能会出现IndexOutOfBounds异常,例如:像这样

for (...; i < intValues1.length && i < intValues2.length && i < stringValues.length; ...)

使Card 中的值永久

class Card {
    final String stringVal;
    final int intVal1;
    final int intVal2;
    public Card(stringVal, intVal1, intVal2) {
        this.stringVal = stringVal;
        this.intVal1 = intVal1;
        this.intVal2 = intVal2;
    }
}

显然,只为班级定义吸气剂。