Nun fehlt mir bei ?? der Befehl.
Ich möchte die Matrix mit zufälligen Vektor2D-Eintragungen befüllen.
Ich bin mir auch nicht sicher mit was ich dann Math.random () multiplizieren soll.
Also:
Du willst eine Matrix, in der nicht einfach Zahlen stehen, sondern Objekte von Vektor2D.
Und ein Vektor 2D hat soweit ich weiß nur 2 Werte zu speichern (x, y). Also ein Tupel.
Dann erstelle doch im inneren der beiden For-Schleifen ein Vektor2D-Objekt und fülle es mit zufälligen Werten, mit Hilfe eines Random-Objektes, so:
Java:
Vektor2D einVektor =newVektor2D();Random randObject =newRandom(100);// Nur Werte von 0 bis 99 generieren, oder wie du willst.
einVektor.setX(randObject.nextInt());//.setX(), o.ä. muss als methode natürlich in
einVektor.setY(randObject.nextInt());// Vektor2D implementiert sein, und einen Wert int füllen.
Jetzt musst du nurnoch an richtiger Stelle in deiner "newMatrix" das Objekt "einVektor" einfügen, das sollte jetzt ja im inneren deiner beiden for-Schleifen machbar sein, oder?
okay, habe ich nun so ähnlich gemacht.
Ich habe in vektor2D eine Methode: public static Vektor2D random()
programmiert, die einen zufällig Vektor wiedergibt.
weist einer Klassen-Variable "matrix", das ein zweidimensionales Array von Vektor2D ist zu. D.h. du kannst zwar ein "newMatrix" Object erstellen, aber dann musst du nicht das Objekt selber mit einem Vektor2D überschreiben,
sondern: diese Klassenvariable "matrix", die zu deinem Objekt "newMatrix" gehört/untergeordnet ist .
Versuchs mal mit einem Zeile 5 Ersatz folgendermaßen:
Java:
newMatrix.matrix[i][j]=Vektor2D.random();//deine Klassenvariable "matrix" muss hierfuer public sein
Nun soll ich noch eine Methode: public String toSTring() für die Darstellung der Matrix mit den Vektor2D einträgen schreiben.
Für die Vektor2D - Klasse habe ich solch eine Methode schon in der entsprechenden Vektor2D Klasse, die ich hier auch verwenden soll.
Diese sah so aus
Java:
publicStringtoString(){return"("+ x +","+ y +")";}
Mit zwei for-schleifen kann ich jedes Vektor2D-element der Matrix abklappern.
Abstand zwischen den SPalten mache ich mit Tabulator und in die neue Zeile kann ich mit \n gehen aber wie mache ich das mit dem STring?
Ich hätte eine Frage:
Warum gibt Java automatisch die Vektoren und Matrixen in der ensprechenden Darstellung in der Konsole aus ohne dass man die Methode toString() explizit dazuschreibt?
Also deine random()-Methode kann eine statische Methode in Vektor2DMatrix sein (gut), oder eine Objekt-/Instanzmethode in Vektor2DMatrix (eher schlecht), oder anstatt einer Methode ein spezieller Konstruktor in Vektor2DMatrix (gut), oder du kannst, anstatt eine Methode zu verwenden, Vektor2DMatrix innerhalb der Schleife erstellen (eher schlecht). Welche Möglichkeit wird denn jetzt von dir favorisiert?