Programmieren in Java
Programmieren in Java
Programmieren in Java
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