使用数字命名类的新实例

时间:2012-04-28 21:21:30

标签: java

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

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之前命名该类的实例。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您需要区分变量对象。变量有名称 - 对象通常没有。 double值当然不会,除非您的Vektor3Dcomparable有特定名称,否则此处无需执行任何操作。

假设事先将vector清空,您已经与计数器相关联,之后您可以使用:

Vektor3Dcomparable vektor = vektor.get(2);
例如,

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

答案 1 :(得分: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));
  }