Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie kann ich die Methode toString so überschreiben, dass eine Matrix zeilenweise ausgegeben werden kann?
Es geht um dieses Programm:
Java:
public class QMatrix {
private QMatrix (int n1, int n2) { // Konstruktor
int[][] matrix = new int[n1][n2]; // neue Matrix mit n1 mal n2 Spalten und Zeilen
for (int i = 0; i < matrix.length; i++) { // die neue Matrix wird mit 0-en "befüllt"
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = 0;
}
}
public static void main(String[] args) {
System.out.println("Bitte Dimensionen nxn der Matrix eingeben: ");
int n1 = Stdin.readInt(); // Eingabe der Spaltenanzahl
int n2 = Stdin.readInt(); // Eingabe der Zeilenanzahl
QMatrix q = new QMatrix(n1, n2);
}
}
1.) matrix (das Array) ist nur lokal sichtbar, wenn du das also in der toString benutzen möchtest, solltest du das als Instanzvariable anlegen
2.) mit 0-en füllen brauchst du nicht, das ist eh schon, sobald du das Objekt erstellst !
3.) toString könntest du dann mit dem StringBuilder zusammenbauen ala`
Java:
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
for (int[] m : matrix) {
for (int i : m) {
builder.append(i).append(" ");
}
builder.append("\n");
}
return builder.toString();
}
Die Vorgaben für die Lösung sind leider, dass ich dem Konstruktor nur die Dimensionen der Matrix, n1 und n2, übergebe und dieser dann die Matrix erzeugt. Ich darf die Matrix nicht als Instanzvariable anlegen (Außerdem müssen die Dimensionen (n1 und n2) der Matrix private sein).
Und StringBuilder darf ich leider auch nicht verwenden
Aber dass ich die Matrix nicht mit 0en befüllen muss ist schonmal gut.
Kannst auch ne Stringverkettung nehmen. Das sollte der compiler für dich optimieren. Die matrix sollte aber schon als Instanzvariable deklariert werden. Anders machts imho keinen Sinn
Danke schonmal für eure Hilfe Momentan bin ich mit den ersten 3 Aufgabenteilen beschäftigt:
So wie ich das verstanden habe, darf ich "dank" Aufgabenteil 2 die Matrix ausschließlich im Konstruktor erzeugen. Oder bin ich selbst jetzt schon nen bischen durcheinander?! ???:L