Cherrycoke
Mitglied
Hi,
ich bin ein blutiger Javaanfänger und versuche folgende Übungsaufgabe zu lösen. Meine Klasse soll 3-diminsionale Vektoren erstellen und diese subtrahieren und addieren können. Folgendes Programm habe ich nun dazu geschrieben.
Wie gesagt - ich bin Anfänger. Wie an meiner Ausgabe zu sehen ist, scheint das Objekt a und Objekt b gleich zu sein (Es wird 4x 2.0 ausgegeben). Aber warum? Objekt a hat doch nur 3x die Werte 0.0. Kann mir jemand kurz erklären, warum dem nicht so ist? Wie erstelle ich die Objekte so, dass ich auch wirklich drei verschiedene Objekte habe? Und vor allem, wie greife ich dann auf diese zu?
Danke für die Antworten!
ich bin ein blutiger Javaanfänger und versuche folgende Übungsaufgabe zu lösen. Meine Klasse soll 3-diminsionale Vektoren erstellen und diese subtrahieren und addieren können. Folgendes Programm habe ich nun dazu geschrieben.
Java:
/**
* Klasse Vector3D
* Eine Implementierung zum Umgang mit drediminionalen Vektoren.
*
* @author Safran Quader
* @version 09.05.2010
*/
class Vektor3D{
//Objektattribut
static private double[] xyz = new double[3];
/**
* erzeugt einen Nullvektor
*/
Vektor3D(){
xyz[0] = 0;
xyz[1] = 0;
xyz[2] = 0;
}
/**
* erzeugt einen Vektor mit spezifizierten Initialisierungen
* @param x Der spezifizierte Wert der x-Koordinate
* @param y Der spezifizierte Wert der y-Koordinate
* @param z Der spezifizierte Wert der z-Koordinate
*/
Vektor3D(double x, double y, double z){
xyz[0] = x;
xyz[1] = y;
xyz[2] = z;
}
/**
* Liefert zu zwei übergebenen Vektoren deren Summe zurück
* @param v Ein beliebiger Vektor
* @param w Ein weiterer beliebiger Vektor
* @return Die Summe von Vektor v und Vektor w
*/
static Vektor3D plus( Vektor3D v, Vektor3D w){
Vektor3D sum = new Vektor3D();
int i;
for( i = 0; i < 3; i++ ){
sum.xyz[i] = v.xyz[i] + w.xyz[i];
}
return sum;
}
/**
* Liefert die Differenz zwischen dem Objekt selbst und dem übergebenen Vektor zurück
* @param v Ein beliebiger Vektor
* @return Die Differenz zwischen dem Objekt selbst und dem Vektor v
*/
static Vektor3D minus( Vektor3D v ){
Vektor3D dif = new Vektor3D();
int i;
for( i = 0; i < 3; i++){
dif.xyz[i] = xyz[i] - v.xyz[i];
}
return dif;
}
public static void main( String[] argv ){
Vektor3D a = new Vektor3D();
Vektor3D b = new Vektor3D(2, 2, 2);
System.out.println(a.xyz[0]);
System.out.println(a.xyz[1]);
System.out.println(a.xyz[2]);
System.out.println(b.xyz[0]);
}
}
Wie gesagt - ich bin Anfänger. Wie an meiner Ausgabe zu sehen ist, scheint das Objekt a und Objekt b gleich zu sein (Es wird 4x 2.0 ausgegeben). Aber warum? Objekt a hat doch nur 3x die Werte 0.0. Kann mir jemand kurz erklären, warum dem nicht so ist? Wie erstelle ich die Objekte so, dass ich auch wirklich drei verschiedene Objekte habe? Und vor allem, wie greife ich dann auf diese zu?
Danke für die Antworten!
Zuletzt bearbeitet von einem Moderator: