我正在尝试创建一个类的新实例,我想将它们命名为
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之前命名该类的实例。我怎么能这样做?
答案 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));
}