Kann man eine void Methode in java ausgeben lassen oder geht das nur bei int/ double... methoden?

4 Antworten

"Ausgeben" im Sinne von Ausgaben Erzeugen mittels System.out.* geht auch mit void-Methoden. Diese können allerdings keinen Rückgabewert haben.

Woher ich das weiß:Berufserfahrung – Berufserfahrung

Nein. void ist, wie der name schon sagt, nichts.

Du kannst nicht nichts ausgeben.

Und es gibt weitaus mehr als int/double als returntype. (Du kannst jedes Objekt "ausgeben": private Foo bar() {}.)

Woher ich das weiß:Studium / Ausbildung

Was genau meinst du damit.

Eine Methode mit void als Rückgabewert kann natürlich auch (im Methodenkörper) Konsolenausgaben erzeugen, gibt jedoch an den Aufrufer keinen Wert zurück.


moin9875 
Fragesteller
 05.10.2021, 20:14

ich meine, dass auf der Konsole etwas angezeigt wird

0
xxxcyberxxx  05.10.2021, 20:15
@moin9875

Wie gesagt: in der Methode selbst kannst du natürlich Konsolenausgaben erzeugen, es wird nur nichts an den Aufrufer zurückgegeben

0
moin9875 
Fragesteller
 05.10.2021, 20:17
@xxxcyberxxx

Meinst du also, es können nur vorgegebene sachen angezeigt werden und es kann nicht durch scan eingaben mit dem Nutzer interagieren?

Wie gebe ich zum Beispiel diesen code aus:

public void countdown(int x) {
if(x == 0) {
System.out.println("Go!");
} else {
System.out.println(x);
countdown(x-1);
}
}
0
xxxcyberxxx  05.10.2021, 20:21
@moin9875

Nein, damit meine ich, dass du die Methode natürlich aufrufen kannst und dort drin alles mögliche ausführen kannst - es wird nur an die Stelle, die die Methode aufruft, nichts zurückgegeben.

Diesen Code würdest du ausgeben, indem du einfach "countdown(x);" hinschreibst - x ist hierbei ein Integer, den du entweder direkt übergeben kannst - z.B. countdown(5) - oder in einer Variable übergeben kannst

Hierbei musst du jedoch aufpassen, bei negativen übergebenen Werten werden ganz viele Ausgaben kommen - wenn du -1 übergibst, werden es (gerundet) 4 Milliarden Ausgaben

0
moin9875 
Fragesteller
 05.10.2021, 20:58
@xxxcyberxxx

ich meinte eben, ob es mit void möglich ist, zb countdown(5) zu verwenden, damit ein für den Menschen sichtbarer countdown von 5 zu 0 auf der konsole stattfindet und er nicht nur für den pc sichtbar ist

0
moin9875 
Fragesteller
 05.10.2021, 21:02
@xxxcyberxxx

ok und wie gestalte ich das konkret? denn den code alleine ausgeführt erzeugt ein leeres konsolenfenster. muss ich da einen zusätzlichen code in der main methode verwenden, damit ich grafisch den countdown anzeigen kann auf der konsole?

0
xxxcyberxxx  05.10.2021, 21:05
@moin9875

Nein, sofern du in der Methode System.out.println(String) nutzt, wird der String auf der Konsole ausgegeben. Du musst die Methode natürlich auch irgendwo aufrufen

0
moin9875 
Fragesteller
 05.10.2021, 21:07
@xxxcyberxxx

aber es sind doch auch zahlen vorhanden, ist string nicht für buchstaben

0
xxxcyberxxx  05.10.2021, 21:09
@moin9875

Ja, aber wenn du die Zahlen an syso übergibst, werden sie in der Ausgabe als String behandelt

0

Was meinst du mit "Methode ausgeben lassen"? Meinst du den Rückgabewert? Bei void Methoden gibt's keinen.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer