Fragen über Fragen :-)

Neue Frage »

Auf diesen Beitrag antworten »
Java_Beginner Fragen über Fragen :-)

Meine Frage:
Hi :-)

In den letzten Tagen haben sich wieder ein paar Fragen ergeben, wo ich bitte Eure Hilfe benötige.

1) Wenn ich Song aSong = new Song () schreibe, stimmt es dann, dass ich eine Instanz der Klasse Song erzeuge?

2) Wie funktioniert genau das mit return? Angenommen ich habe:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:

public int addition (int zahl1, int zahl2)
{
     int ergebnis = zahl1+zahl2;
    System.out.println(ergebnis); 
    return ergebnis; 
}


Wird hier dann jede Anweisung zurückgegeben, die vor return steht? Also auch das System.out.println()?


3) Bei Methoden gibt es ja Rückgabewerte - Entweder void oder ein primitiver Datentyp: Aber für was habe ich diese Rückgabewerte? Theoretisch kann ich alles mit void anlegen und dann in der main-Aufrufen? Warum soll ich ein Integer verwenden und dann mit return arbeiten, wo ich Gefahr laufe, einen weiteren Fehler einzubauen?


4) toString-Methode: Wie kann ich ein Integer und eine Methode hier einbauen? String.format habe ich gelesen, soll aber anscheinend noch eine andere Möglichkeit geben. Außerdem bekomme ich mit String.format das mit den Methoden nicht hin.

Und warum wird bei toString() dann in der main-Funktion trotzdem noch die System.out.println() - Ausgabe benötigt?

code:
1:
2:
3:
4:
5:
6:
7:
8:

int zahl = 5; 

public String toString {) {
        String.format("%s",zahl);
}



Meine Ideen:
Viele Fragen :-)

Vielen Dank für Eure Antworten.
 
Auf diesen Beitrag antworten »
eulerscheZahl

1) Ja, sogar ein neues Objekt.

2) return gibt nur das zurück, was nach return steht. Folglich kannst du nur den Inhalt einer einzigen Variablen zurückgeben.
Willst du mehrere Rückgabewerte haben, geht das in Java entweder durch ein Array(bzw. List oder ähnliches), oder indem du eine eigene Klasse für den Rückgabetypen erstellst.
Die Ausgabe mit println erfolg in der Funktion, der aufrufende Code kriegt davon nichts mit.

3) es kann ja sein, dass du das Ergebnis noch verwenden willst. Deine Funktionen können komplexer werden und über mehrere Bildschirme gehen. Dann ist es an der Zeit, Teile in Unterfunktionen auszulagern. Trotzdem brauchst du aber das Ergebnis, um weiterrechnen zu können. Auch Rekursion wäre ohne Rückgabetyp eine ziemlich traurige Angelegenheit.

4) da fehlt auch ein return. Und die Funktionsklammern müssen rund sein.
code:
1:
2:
3:
4:
public String toString() {
	// return String.format("%s", zahl);
	return String.valueOf(zahl);
}

Für Ganzzahlen könntest du als Formatter auch "%d" statt "%s" nehmen.

Und wie bei Frage 3): vielleicht willst du ja was anderes damit machen: in eine Datei schreiben, auf ein Bild malen, .... toString() wird dann interessant, wenn es um Vererbung und Polymorphie geht.
Auf diesen Beitrag antworten »
Java_Beginner

Vielen Dank für die Antworten :-)
 
Neue Frage »
Antworten »


Verwandte Themen