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

変数オブジェクトを区別する必要があります。変数には名前がありますが、オブジェクトには通常ありません。double値は確かにそうではなく、Vektor3Dcomparable特定の名前がない限り、ここで行うことは何もありません。

vector事前に空であると仮定すると、すでに参照をカウンター関連付けています-その後、次を使用できます。

Vektor3Dcomparable vektor = vektor.get(2);

例えば。これらの「名前」で何をしたいのかをより明確にすることができれば、より多くのことを助けることができるかもしれません.

于 2012-04-28T21:24:27.213 に答える
0

Make Vektor3Dcomparable override Object.toString() to return your desired object name.

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

If you want to assign a specific name, you'll have to pass that name (or index number, in your case) to the constructor, along with your 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 に答える