2

我正在尝试创建一个类的新实例,我想这样命名它们

vektor1 vektor2 vektor3 等等。作为计算源,我想使用属于 for 循环的 i 的值。这是我为此使用的 for 循环

for(int i=0; i<5;i++){
        System.out.println ("Bitte geben sie die erste Koordinat der "+(i+1)+". Vektor ein");
        double k1=scan.nextDouble();

        System.out.println ("Bitte geben sie die zweite Koordinat der "+(i+1)+". Vektor ein");
        double k2=scan.nextDouble();

        System.out.println ("Bitte geben sie die dritte Koordinat der "+(i+1)+". Vektor ein");
        double k3=scan.nextDouble();

        vektor.add(new Vektor3Dcomparable(k1,k2,k3));
    }

在这里,我想在将其添加到 ArrayList 之前命名类的实例。我怎样才能做到这一点?

4

2 回答 2

3

你需要区分变量对象。变量有名字——对象通常没有。doublevalues 当然没有,除非你Vektor3Dcomparable有一个特定的名字,否则这里没有什么可做的。

假设vector事先是空的,您已经在某种程度上将引用与计数器相关联 - 之后您可以使用:

Vektor3Dcomparable vektor = vektor.get(2);

例如。如果您可以更清楚地了解您想用这些“名称”做什么,我们可能会提供更多帮助。

于 2012-04-28T21:24:27.213 回答
0

进行Vektor3Dcomparable覆盖Object.toString()以返回所需的对象名称。

@Override public String toString() { 
  return "Mein 3D Vektor Nummer " + ind; 
}

如果要分配特定名称,则必须将该名称(或索引号,在您的情况下)传递给构造函数,以及您的k1, k2, k3.

  final double[] k = new double[3];
  for (int i=0; i<5; i++) {
    for (int j = 0; j < 3; j++) {
      System.out.println ("Bitte geben sie die " + 
          (j == 1? "ers" : j == 2? "zwei" : "drit") +
          "te Koordinat der "+(i+1)+". Vektor ein");
      k[j] = scan.nextDouble();
    }
    vektor.add(new Vektor3Dcomparable(k[0], k[1], k[2], i));
  }
于 2012-04-28T22:19:14.827 回答