String Repräsentation eines Rechtecks mit Instanz-Methode

HoLiShet

Mitglied
Hallo,
Ich sitze schon seit einiger Zeit an einer Aufgabe und komme nicht weiter. Und zwar muss ich mit der Instanz-Methode "public String toString()" eine String Repräsentation eines Rechtecks ausgeben. Dabei soll das Rechteck, wenn die Methode aufgerufen wird, im Terminal stehen und aus "+" Symbolen bestehen. Die Instanzvariablen der Breite und länge hab ich schon definiert. Normalerweise würde ich sowas mit for-schleifen machen, aber das geht hier leider nicht, da am Ende der Methode ein return Aufruf stehen muss. Kann da jemand weiterhelfen?
 
Beste Antwort
K
Ich denke, dein Problem ist erst einmal, dass Du ein Problem hast, einen String über mehrere Zeilen zu erzeugen.

Du kannst einen Zeilenumbruch in einem String haben über ein "\n", also ein "Zeile1\nZeile2" wäre dann bei einer Ausgabe:
Zeile1
Zeile2

Und wenn Du das Rechteck ausgeben konntest, dann ist das nur ein kleiner Schritt hin zur Übergabe der Ausgabe.

Also wenn Du bisher hattest:
Java:
System.out.println("Zeile1");
System.out.println("Zeile2");

Dann wäre das in einer Methode, die die bisherige Ausgabe zurück geben sollte etwas wie:
Java:
String ausgabe = "";
ausgabe = ausgabe + "Zeile1\n"; // Oder kürzer: ausgabe += "Zeile1\n";
ausgabe = ausgabe + "Zeile2\n"; // Oder kürzer: ausgabe += "Zeile2\n";
return ausgabe;

Mit dem...
Normalerweise würde ich sowas mit for-schleifen machen, aber das geht hier leider nicht, da am Ende der Methode ein return Aufruf stehen muss.
Äh, was? Man kann also for-Schleifen nicht in Methoden verwenden, die einen Rückgabetyp != void haben?
Methoden in Java dürfen auch mehr als nur eine Anweisung (ein Statement) haben. Du kannst also ein for-Statement nehmen und _danach_ ein return.
 
Äh, was? Man kann also for-Schleifen nicht in Methoden verwenden, die einen Rückgabetyp != void haben?
Methoden in Java dürfen auch mehr als nur eine Anweisung (ein Statement) haben. Du kannst also ein for-Statement nehmen und _danach_ ein return.
Wusste ich nicht. Ich bin noch Anfänger und hab bis jetzt ein Rechteck nur in der Main-Methode dargestellt. Da ging das mit den for Schleifen. Wenn ich eine for schleife benutze und danach ein return angebe kommt eine Fehlermeldung mit "missing return value".
 
Das ist nicht nach sondern in der Schleife - was von der Logik her schon unsinnig ist, weil beim ersten Durchlauf die Methode durch das return ja sofort zurückkehrt.

Hier mal Code zum Addieren der Zahlen von 0 bis 9:
Java:
int summe = 0;
for (int i = 0; i < 10; i++) {
    summe = summe + i;
}
return summe;
 
Ich denke, dein Problem ist erst einmal, dass Du ein Problem hast, einen String über mehrere Zeilen zu erzeugen.

Du kannst einen Zeilenumbruch in einem String haben über ein "\n", also ein "Zeile1\nZeile2" wäre dann bei einer Ausgabe:
Zeile1
Zeile2

Und wenn Du das Rechteck ausgeben konntest, dann ist das nur ein kleiner Schritt hin zur Übergabe der Ausgabe.

Also wenn Du bisher hattest:
Java:
System.out.println("Zeile1");
System.out.println("Zeile2");

Dann wäre das in einer Methode, die die bisherige Ausgabe zurück geben sollte etwas wie:
Java:
String ausgabe = "";
ausgabe = ausgabe + "Zeile1\n"; // Oder kürzer: ausgabe += "Zeile1\n";
ausgabe = ausgabe + "Zeile2\n"; // Oder kürzer: ausgabe += "Zeile2\n";
return ausgabe;

Mit dem Wissen solltest Du dann eine Methode, die das Rechteck direkt ausgegeben hat, umschreiben können, so dass die Methode nichts mehr ausgibt sondern statt dessen den Text, der sonst ausgegeben worden wäre, zurück gibt.
 
Beste Antwort

Zurück
Oben