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

keine Bearbeitungszusammenfassung
(Die Seite wurde neu angelegt: „{{Navigation}} {{Pfad|Methoden}} sind eine Reihe von Anweisungen, die mehrfach wiederverwendet werden können. Im Sinne der Strukturierte Zerlegung|strukturi…“)
 
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:


In einem Zeichnprogramm könnte es zum Beispiel eine Methode <code>public void zeichneQuadrat()</code> geben. Sie würde immer das gleiche Quadrat zeichnen. Das wäre wenig sinnvoll, denn eigentlich sollen ja beliebige Quadrate gezeichnet werden können.  (Also mit beliebig großer Kantenlänge.)
In einem Zeichnprogramm könnte es zum Beispiel eine Methode <code>public void zeichneQuadrat()</code> geben. Sie würde immer das gleiche Quadrat zeichnen. Das wäre wenig sinnvoll, denn eigentlich sollen ja beliebige Quadrate gezeichnet werden können.  (Also mit beliebig großer Kantenlänge.)
== Parameter ==


Damit man nicht für alle möglichen Quadrate eigene Methoden schrieben muss (was ja gar nicht möglich ist, da es theoretisch unendlich viele Quadrate gibt), kann man der Methode mit einem '''Parameter''' sagen, wie groß das Quadrat werden soll.  
Damit man nicht für alle möglichen Quadrate eigene Methoden schrieben muss (was ja gar nicht möglich ist, da es theoretisch unendlich viele Quadrate gibt), kann man der Methode mit einem '''Parameter''' sagen, wie groß das Quadrat werden soll.  


<center><code>public void zeichneQuadrat( {{Farbig|double pKantenlaenge|orange}} )</code></center>
<center><code>public void zeichneQuadrat( {{Farbig|double pKantenlaenge|orange}} )</code></center>
In den vorhergegangenen Schritten sind solche Parameter schon öfter aufgetaucht. Sie sind {{Pfad|Datentypen und Variablen|Variablen}}, die im Methodenkopf ''deklariert'', aber erst beim Aufruf der Methode mit einem Wert ''initialisiert'' werden.
Die Paramtervariable ist dann im gesamten Methodenrumpf ''gültig'' und kann wie andere Variablen benutzt werden.
Eine Methode kann auch mehr als einen Parameter haben. Die Methode von oben könnte zu <code>zeichneRechteck</code> verallgemeinert werden und zwei Parameter für die beiden Kantenlangen bekommen:
<center><code>public void zeichneRechteck( {{Farbig|double pKanteA, double pKanteB|orange}} )</code></center>
{{Kasten|Fur die Bezeichner von Parametern gelten dieselben Vorgaben wie für die von Variablen und Merhoden. Um sie leichter von lokalen Variablen innerhalb des Methodenrumpfes unterscheiden zu können benutzt man häufig ein kleines "p" als Prefix. Dies ist aber nur eine Absprache unter Entwicklern, im den Quellcode besser lesbar zu machen. Man könnte als Bezeichner auch <code>xTezU</code> oder sonst einen Unsinn benutzen.|{{Farbe:Info}}}}
== Rückgabetypen ==
== Rückgaben ==
== Aufrufarten bei Paramteren ==
Wird eine Methode mit Parametern aufgerufen, dann wird die Parametervariable mit einem Wert initialisiert. Je nachdem, welchen Datentyp der Parameter hat, wird eine von zwei Arten der Initialisierung benutzt.
=== 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.
=== 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.
8.581

Bearbeitungen