Lernpfad:Objektorientierte Programmierung mit Java/Parameter und Rückgaben: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 29: Zeile 29:
=== Call-by-value ===
=== Call-by-value ===
Handelt es sich um einen primitiven Datentyp, dann wird der Wert, mit dem die Methode aufgerufen wird als Kopie an die Methode übergeben. Änderungen an der Paramtervariablen wirken sich it innerhalb des Methodenrumpfes aus, nicht aber außerhalb der Methode.  
Handelt es sich um einen primitiven Datentyp, dann wird der Wert, mit dem die Methode aufgerufen wird als Kopie an die Methode übergeben. Änderungen an der Paramtervariablen wirken sich it innerhalb des Methodenrumpfes aus, nicht aber außerhalb der Methode.  
Man spricht im deutschen von einem [[wikipedia:Wertparameter|Wertparameter]].


=== Call-by-reference ===
=== Call-by-reference ===
Handelt es sich im eine Objektreferenz, dann wird auch nur eine Referenz übergeben. Wie im Schritt {{Pfad|Referenzen}} beschrieben wird, handelt es sich dabei um einen Zeiger auf ein Objekt im Speicher. Änderungen an diesem Objekt wirken sich überall im Programm aus, nicht nur innerhalb der Methode.
Handelt es sich im eine Objektreferenz, dann wird auch nur eine Referenz übergeben. Wie im Schritt {{Pfad|Referenzen}} beschrieben wird, handelt es sich dabei um einen Zeiger auf ein Objekt im Speicher. Änderungen an diesem Objekt wirken sich überall im Programm aus, nicht nur innerhalb der Methode.  
 
Man spricht im deutschen von einem [[wikipedia:Referenzparameter|Referenzparameter]].
 
=== Weiterführende Informationen ===
{{Collapse:Start}}
In Java wird durch den Typ des Parameters die Aufrufart bestimmt. Primitive Typen werden immer als Wertparameter, Objekte als Referenzparamter übergeben. Um einen primitiven Typ als Referenz zu übergeben muss man seine {{Pfad|Referenzen|Wrapperklasse}} benutzen.
 
Dies ist vor allem bei Strings wichtig zu wissen, da Strings in Java nicht zu den primitiven Datentypen gehören. Daher werden sie immer als Referenz übergeben. (Strings haben in Java eine Sonderstellung, die manchmal zu unvorhersehbaren Fehlern führen kann. Mehr dazu kannst du unter <ref>https://</ref> lesen.)
 
Andere Programmiersprachen erlauben das explizite Festlegen, welche Aufrufart verwendet werden soll. Dort können auch primitive Datentypen als Referenz übergeben werden.
 
In wieder anderen Programmiersprachen sind die beschriebenen Konzepte irrelevant, da Änderungen an Variablen nicht erlaubt sind und eine Unterscheidung der Aufrufarten keinen Sinn macht (vgl. [[wikipedia:Funktionale Programmierung|Funktionale Programmierung]]).
{{Collapse:End}}
8.581

Bearbeitungen