16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

2.6.6 Variable Parameteranzahl<br />

Mit <strong>Java</strong> 1.5 können Metho<strong>de</strong>n mit e<strong>in</strong>er variablen Anzahl von Parametern <strong>de</strong>f<strong>in</strong>iert<br />

wer<strong>de</strong>n. Sie wer<strong>de</strong>n durch Punkte nach <strong>de</strong>m Paramtertyp <strong>in</strong> <strong>de</strong>r Signatur<br />

gekennzeichnet. Damit wird angezeigt: Es kann e<strong>in</strong>e beliebige Anzahl dieser<br />

Parameter bei e<strong>in</strong>em Metho<strong>de</strong>naufruf geben.<br />

Bsp.:<br />

public class VarParams<br />

{<br />

public static Str<strong>in</strong>g append(Str<strong>in</strong>g ... argumente)<br />

{<br />

Str<strong>in</strong>g result = "";<br />

for (Str<strong>in</strong>g a : argumente)<br />

result += a;<br />

return result;<br />

}<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g [] args)<br />

{<br />

System.out.pr<strong>in</strong>tln(append("Hallo"," ","Welt"));<br />

}<br />

}<br />

2.6.7 Rekursion<br />

2.6.7.1 Rekursive Funktionen<br />

E<strong>in</strong>e Funktion ist rekursiv, falls die Ausführung <strong>de</strong>s Rumpfs <strong>de</strong>r Funktion wie<strong>de</strong>rum<br />

zum Aufruf <strong>de</strong>r Funktion führt. Man unterschei<strong>de</strong>t<br />

Direkte Rekursion (E<strong>in</strong>e Funktion ruft sich selbst im Rumpf auf)<br />

und<br />

Indirekte Rekursion (Der rekursive Aufruf befi<strong>de</strong>t sich nicht im Funktionsrumpf. So ruft bspw. e<strong>in</strong>e<br />

Funktion A e<strong>in</strong>e Funktion B auf und diese startet <strong>in</strong> ihrem Rumpf die Funktion A).<br />

Wie Wie<strong>de</strong>rholungsanweisungen neigen auch rekursive Funktionen zur Gefahr nicht<br />

abbrechbarer Berechnungen. E<strong>in</strong>e Term<strong>in</strong>ierung ist unbed<strong>in</strong>gt erfor<strong>de</strong>rlich. Das<br />

geschieht über e<strong>in</strong>e Bed<strong>in</strong>gung von <strong>de</strong>r <strong>de</strong>r rekursive Aufruf abhängt..<br />

Bei je<strong>de</strong>r rekursiven Anwendung wird e<strong>in</strong> Satz lokaler, gebun<strong>de</strong>ner Variablen kreiert.<br />

Sie haben zwar <strong>de</strong>nselben Namen wie Objekte <strong>de</strong>s vorangegengenen Aufrufs <strong>de</strong>r<br />

Prozedur, besitzen aber verschie<strong>de</strong>ne Werte. Die Namen beziehen sich immer auf<br />

die zuletzt erzeugten Variablen.<br />

198

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!