Java 7 Grundkurs

Wer darf was? Zugriffsrechte festlegen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Selbstredend, dass nicht alle Objekte alle Methoden aufrufen und auf alle Attribute zugreifen dürfen, sei es lesend oder auch schreibend. Wie Sie das einschränken und verhindern, erfahren Sie genau hier.
03:41

Transkript

In diesem Video zeige ich Ihnen, wie Sie die Rechte für den Zugriff auf Attribute und Methoden festlegen können. Objekte können Attribute haben, in denen sie ihre Eigenschaften vorhalten und Methoden, in denen ihre Fähigkeiten beschrieben sind. Nun wäre es aber sehr ungünstig, wenn alle Objekte unserer Anwendungen voneinander alle Methoden aufrufen könnten und auch auf alle ihre Attribute gegenseitig zugreifen und diese nicht nur lesen, sondern auch schreiben dürften. Um genau das zu verhindern, gibt es Zugriffsmodifizierer, mit denen sich die Zugriffsrechte festlegen lassen. Insgesamt gibt es vier davon und alle lassen sich sowohl an Attribute als auch an Methoden dran schreiben. Schauen wir uns den ersten an: Er heißt "private". Deklariere ich ein Member einer Klasse "private", dann hat nur diese Klasse selbst Zugriff darauf und niemand anders. Das ist die restriktivste Form der Zugriffsbeschränkung und wir verwenden sie z.B. für Attribute, um diese zu kapseln, damit die Klasse selbst die volle Kontrolle über diese Attribute behält. Am anderen Ende der Skala befindet sich das Schlüsselwort "public". Hier darf jeder drauf zugreifen. "Public" beschränkt den Zugriff also überhaupt nicht, sowohl die Klasse selbst als auch beliebige andere Klassen können zugreifen. Nun gibt es dazwischen noch zwei Abstufungen. Für die erste gibt es nicht mal ein Schlüsselwort. Sie wird deswegen als "default" oder auch manchmal als "package private" bezeichnet. Möchte ich eine Methode oder ein Attribut mit diesem Zugriffsrecht versehen, dann schreibe ich einfach gar nichts davor. Ich erreiche dann, dass sowohl die Klasse selbst darauf zugreifen darf als auch alle anderen Klassen, die sich im selben Package befinden. Daher auch die Bezeichnung "package private". Klassen aus anderen Paketen haben also keinen Zugriff auf solche Methoden und wenn wir trotzdem versuchen, sowas zu programmieren, dann bekommen wir einen Compiler-Fehler. Das gilt übrigens auch für Unterpakete von Paketen. Unterpakete gelten hier als anderes Paket. Dieses "default"-Zugriffsrecht erstreckt sich eben nun mal nicht auf andere Pakete. Kommen wir zum vierten im Bunde: "protected". Hier gibt es wieder das passende Schlüsselwort und "protected" bedeutet sozusagen das gleiche wie "default" plus Unterklassen. Schreibe ich also "protected" vor eine Methode, dann kann die Klasse selbst darauf zugreifen, alle anderen Klassen aus demselben Paket können darauf zugreifen und Unterklassen dieser Klasse können auf diese Methode zugreifen, auch wenn sich diese Unterklassen in einem anderen Paket befinden sollten. Wenn Sie unsicher sein sollten, welches diese vier Rechte Sie in einem konkreten Einzelfall verwenden sollen, dann machen Sie sie erst mal so restriktiv wie möglich, also "private" und öffnen Sie es dann soweit wie nötig. Attribute, deren zulässige Werte gewissen Beschränkungen unterliegen, sind z.B. in der Regel "private". Haben wir zum Beispiel eine Klasse "Katze" und die hat ein Attribut für ihr Gewicht, dann kann dieses Gewicht in der Regel nicht negativ sein. D.h. wir setzen das Attribut auf "private", packen einen zugänglicheren Setter dazu, also eine Set-Methode, mit der wir das Attribut setzen können und diese Set-Methode überprüft, ob der übergebene Parameter nicht negativ ist. Auch Methoden, die die Klasse nur für die interne eigene Verwaltung benötigt, setzt man häufig auf "private". Haben Sie zum Beispiel in einer Klasse an vier oder fünf verschiedenen Stellen immer wieder die gleichen drei Zeilen Code, dann können Sie diese drei Zeilen in eine separate Methode auslagern, die Sie dann von diesen vier oder fünf Stellen aus aufrufen können. Diese Methode setzen Sie auf "private", damit sie nicht von außen aufgerufen werden kann, die Klasse selbst kann die Methode aber verwenden. Alle anderen Methoden einer Klasse werden in der Regel erst mal mit "public" markiert und erst wenn Sie auf einen der vorhin genannten Spezialfälle treffen, dann könnten Sie eventuell erwägen, "protected" oder "default" zu verwenden. Und achten Sie bei "default" darauf: Verwenden Sie nicht das Schlüsselwort "default", das hat eine völlig andere Bedeutung, sondern schreiben Sie gar nichts hin. Damit kennen Sie nun die verschiedenen Möglichkeiten, die Zugriffsrechte festzulegen und die einzelnen Schlüsselwörter dafür.

Java 7 Grundkurs

Machen Sie sich mit den Grundlagen der Java-Programmierung vertraut und lernen Sie die Syntax der Sprache sowie das Konzept der objektorientierten Softwareentwicklung kennen.

8 Std. 32 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!