Java Void noch immer....

Schnuffix10

Cadet 2nd Year
Registriert
Okt. 2013
Beiträge
24
Kann mir jemand vielleicht Void erklären? Ich weiß, dass es keinen Rückgabewert hat und man Methoden als void bezeichnet, wenn man ihnen keinen Wert geben möchte/muss.
Im folgenden Beispiel gebe ich dieser void Methode aber doch ein wert über die Funktion „Auto1.updateNavi(5);
Beide befinden sich in unterschiedlichen Klassen, noch als Anmerkung.

Auto1.updateNavi(5);
System.out.println(Auto1.getNavi());

----------------------------------------------------------------------------------------------------------------------------
static int navi;

public void updateNavi(int navigationssystem){
navi=navigationssystem;
}

public int getNavi(){
return navi;
}




Vielen Dank :p
 
Ich weiß, dass es keinen Rückgabewert hat und man Methoden als void bezeichnet, wenn man ihnen keinen Wert geben möchte/muss.
Falsch!
Void sagt das kein Wert zurückgegeben wird.

Zu sehen bei deinr zweiten Methode:
public int getNavi(){

Hier wird ein int Wert zurückgegeben und desshalb wird hier int und nicht Void benutzt. Den Wert gibt man mit return zurück. Also gibst du hier den int Wert von navi zurück

Wikipedia:
In den Programmiersprachen C, C++, Java und C# wird void für Funktionen bzw. Methoden ohne Rückgabewert (sog. Prozeduren) benutzt. In diesen Sprachen muss syntaktisch für jede Funktion bzw. Methode ein Rückgabetyp angegeben werden. Wenn kein Wert zurückgegeben wird, steht stattdessen void.
 
Zuletzt bearbeitet:
was macht den
Code:
[...]public int methodeEins(int bla, int blabla){  [...]
?

Es gibt dir einen Wert zurück, bei int einen int, eine ganz normale Zahl halt würde ich so salop sagen, bei long einen long, bei String einen String usw.
Bei void gibt es dir nichts zurück. Also das machst du wenn du nichts aus der Funktion brauchst. Z.B. du arbeitest mit einer Klasse und erstellst ihre Methoden, und du arbeitest mit einem Feld, einer Klassenvariable dann wird die in der Klasse gespeichet, vollautomatisiert, da brauchst du nichts returnen wenn du es nicht brauchst.
 
Zuletzt bearbeitet:
@SparkMonkey.

Java unterscheidet zwischen int und Integer.

Bei int gibts auch einen int zurück und keinen Integer. Integer != int (Datentyp). Hat bei meiner App-Entwicklung für lustige Nullpointer gesorgt (im Zusammenhang mit Datenbanknutzung :D).


public void updateNavi(int navigationssystem)
{
navi=navigationssystem;
}

public int getNavi()
{
return navi;
}

Die 1. Methode gibt keinen Wert zurück (void). Aber du setzt einen Wert. Du übergibst einen int und setzt diesen (Setter-Methode). Deshalb rufst du diese Methode auch mittels Auto1.updateNavi(5); DU setzt bei deinem Auto1 den Wert für updateNavi auf 5. Aber du erhältst keinen Wert zurück.

Bei der 2. Methode hingegen erhältst du einen int zurück. Und zwar von dem Autotyp (bei deinem Beispiel oben Auto1). Diesen Wert kannst du dir dann z.B. in einer Variablen speichern oder wie du direkt ausgeben mittels sysout.
 
@nik

Sorry, habe mich was das angeht vertan, ich meine damit eine stinknormale Zahl ohne schnick schnak, "int" halt und nicht "Integer".

Wird korrigiert.
 
Stimmt, da sich aber OP nicht meldet, würde ich behaupten er hat es verstanden.
 
Zurück
Oben