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 />

verwen<strong>de</strong>t wer<strong>de</strong>n. Hat e<strong>in</strong>e Metho<strong>de</strong> e<strong>in</strong>en Rückgabewert, dann kann sie mit <strong>de</strong>r „return“-<br />

Anweisung 71 e<strong>in</strong>en Wert an <strong>de</strong>n Aufrufer zurückgeben.<br />

Parameterliste enthält optional Argumente und hat folgen<strong>de</strong> Struktur: Datentyp<br />

variablenname, ..... Die Anzahl <strong>de</strong>r Parameter ist beliebig und kann Null se<strong>in</strong>.<br />

In <strong>Java</strong> wird je<strong>de</strong> selbst<strong>de</strong>f<strong>in</strong>ierte Klasse mit Hilfe <strong>de</strong>s Operators new <strong>in</strong>stanziert. Mit<br />

Ausnahme von Zeichenketten (Str<strong>in</strong>gs) und Datenfel<strong>de</strong>rn (Arrays), bei <strong>de</strong>nen <strong>de</strong>r<br />

Compiler auch Literale zur Objekterzeugung bereitstellt, gilt dies für alle<br />

vor<strong>de</strong>f<strong>in</strong>ierten Klassen <strong>de</strong>r <strong>Java</strong>-Bibliothek.<br />

Der Aufruf e<strong>in</strong>er Metho<strong>de</strong> erfolgt ähnlich <strong>de</strong>r Verwendung e<strong>in</strong>er Instanzvariablen <strong>in</strong><br />

„Punktnotation“. Zur Unterscheidung von e<strong>in</strong>em Variablenzugriff müssen zusätzlich<br />

die Parameter <strong>in</strong> Klammern angegeben wer<strong>de</strong>n, selbst wenn die Parameter-Liste leer<br />

ist.<br />

E<strong>in</strong> praktisches Beispiel:<br />

1. Erstellen <strong>de</strong>r Klasse Rechentafel zum Rechnen mit ganzen Zahlen<br />

Die grundlegen<strong>de</strong> Klassen<strong>de</strong>f<strong>in</strong>ition ist: class Rechentafel{ }<br />

Das ist e<strong>in</strong>e <strong>Java</strong>-Klasse (<strong>in</strong> e<strong>in</strong>fachster Form), selbstverständlich passiert hier noch<br />

nicht viel. Damit etwas Aktion stattf<strong>in</strong><strong>de</strong>n kann, müssen Zustand und Verhalten<br />

diverser Rechentafel-Objekte festgehalten wer<strong>de</strong>n können.<br />

Der Zustand wird <strong>in</strong> Variablen gespeichert. In Rechentafel-Objekten gibt es zwei<br />

Operan<strong>de</strong>n zur Aufnahme ganzzahliger Werte für die Berechnung und e<strong>in</strong>e Variable<br />

zur Aufnahme <strong>de</strong>s Resultats nach <strong>de</strong>r Berechnung. Operan<strong>de</strong>n und Resultat s<strong>in</strong>d <strong>in</strong><br />

<strong>de</strong>r Klasse Rechentafel Instanzvariable, da je<strong>de</strong>s Rechentafel-Objekt dafür<br />

verschie<strong>de</strong>ne Werte haben kann. Folgen<strong>de</strong> Instanzvariable (mit Datentyp <strong>in</strong>t)<br />

wer<strong>de</strong>n <strong>in</strong> <strong>de</strong>n durch „{ }“markierten Klassenkörper e<strong>in</strong>getragen:<br />

// Instanzvariable<br />

<strong>in</strong>t ersterOperand = 0;<br />

<strong>in</strong>t zweiterOperand = 0;<br />

Da ke<strong>in</strong>e spezifische Angabe zur Sichtbarkeit vorliegen, haben Objekte auf die<br />

Variablen Zugriff, die aus Klassen <strong>in</strong>nerhalb <strong>de</strong>s Klassenverzeichnisses gebil<strong>de</strong>t<br />

wer<strong>de</strong>n.<br />

Rechentafel-Objekte sollten „Rechnen“ können. Dieses Verhalten be<strong>de</strong>utet: Die<br />

vorliegen<strong>de</strong>n Instanzvariablen s<strong>in</strong>d durch Instanzmetho<strong>de</strong>n zu ergänzen, z.B.:<br />

// Operationen<br />

<strong>in</strong>t addiere()<br />

{<br />

return ersterOperand + zweiterOperand;<br />

}<br />

<strong>in</strong>t subtrahiere()<br />

{<br />

return ersterOperand - zweiterOperand;<br />

}<br />

<strong>in</strong>t multipliziere()<br />

{<br />

return ersterOperand * zweiterOperand;<br />

}<br />

<strong>in</strong>t dividiere()<br />

{<br />

// ganzzahlige Division<br />

return ersterOperand / zweiterOperand;<br />

71 vgl. 2.6.4<br />

57

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!