05.10.2013 Aufrufe

Programmieren in Java

Programmieren in Java

Programmieren in Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Das Beispiel zeigt folgende Empfehlungen für die Vergabemöglichkeit von Zugriffsrechten:<br />

Klassen public<br />

Instanzvariable private<br />

Instanzkonstanten public<br />

Instanzmethoden public, falls e<strong>in</strong> Zugriff von außen erforderlich und s<strong>in</strong>nvoll ist.<br />

private, falls es sich um klasen<strong>in</strong>terne Hilfsmethoden handelt.<br />

Analoge Überlegungen gelten auch für Klassenvariable und -methoden.<br />

Klassenvariable und Klassenmethoden<br />

Die Klasse „Rechentafel" 54 wurde zusätzlich erweitert um<br />

// Klassenvariable<br />

static <strong>in</strong>t anzRechenobjekte = 0;<br />

Das reservierte Wort static macht Variable und Methoden (wie bspw. ma<strong>in</strong>()) zu<br />

Klassenvariablen bzw. Klassenmethoden.<br />

Klassenvariable werden <strong>in</strong> der Klasse def<strong>in</strong>iert und gespeichert. Deshalb wirken sich<br />

ihre Werte auf die Klasse und all ihre Instanzen aus. Jede Instanz hat Zugang zu der<br />

Klassenvariablen, jedoch gibt es für alle Instanzen dieser Variablen nur e<strong>in</strong>en Wert.<br />

Durch Änderung des Werts ändern sich die Werte aller Instanzen der betreffenden<br />

Klasse.<br />

Die folgende Erweiterung des Konstruktors der Klasse „Rechentafel“ berücksichtigt<br />

das spezielle Verhalten von Klassenvariablen:<br />

public Rechentafel(<strong>in</strong>t ersterOperand, <strong>in</strong>t zweiterOperand)<br />

{<br />

super();<br />

this.ersterOperand = ersterOperand;<br />

this.zweiterOperand = zweiterOperand;<br />

nummer = ++anzRechenobjekte;<br />

}<br />

„nummer“ ist e<strong>in</strong>e Instanzvariable, „anzRechenObjekte“ ist die Klassenvariable.<br />

Das reservierte Wort f<strong>in</strong>al macht Variablen zu Größen, denen nur e<strong>in</strong>mal bei der<br />

Deklaration e<strong>in</strong> Wert zugewiesen werden kann, d.h. sie werden dadurch zu<br />

Konstanten, z.B.: public static f<strong>in</strong>al double PI = 3.1415926535897932846;<br />

Klassenmethoden wirken sich wie Klassenvariable auf die ganze Klasse, nicht auf<br />

e<strong>in</strong>zelne Instanzen aus. Klassenmethoden s<strong>in</strong>d nützlich zum Zusammenfassen<br />

allgeme<strong>in</strong>er Methoden an e<strong>in</strong>er Stelle der Klasse. So umfaßt die Math-Klasse<br />

zahlreiche mathematische Funktionen <strong>in</strong> der Form von Klassenmethoden. Es gibt<br />

ke<strong>in</strong>e Instanzen der Klasse Math.<br />

Auch rekurvive Programme benutzen Klassenmethoden, z.B.:<br />

54 PR14103<br />

46

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!