Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche
  1. Startseite
  2. Podcasts
  3. IT-Berufe-Podcast Podcast
  4. Objektorientierung Teil 2 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #44
Objektorientierung Teil 2 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #44

Objektorientierung Teil 2 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #44

IT-Berufe-Podcast vor 10 Jahren
Zu Sammlung hinzufügen

Du hast noch keine Sammlungen.

Herunterladen (rechte Maustaste) Teilen Fundstellen Kommentare
0:00
34:45
Sichtbarkeitsmodifizierer und Konstruktoren sind die Themen der
vierundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR
An der Klasse Auto zeige ich dir, wie du mit this auf das aktuelle
Objekt zugreifst und Konstruktoren miteinander verknüpfst.
Konstruktoren sorgen dafür, dass ein neues Objekt gültige
Attributwerte erhält, während Sichtbarkeitsmodifizierer den Zugriff
auf seine Attribute und Methoden regeln. Als Entwickler:in deiner
Klasse bist du dafür verantwortlich, dass sie sich vollständig
initialisiert und andere Entwickler:innen direkt mit ihren Objekten
arbeiten können. Kapitelmarken [00:00:01] Einstieg in die zweite
Lernzielkontrolle zur Objektorientierung [00:01:53] this als
Referenz auf das aktuelle Objekt [00:05:23] Konstruktoren und
gültige Objektzustände [00:08:08] Konstruktoren definieren und
überladen [00:10:13] Gemeinsamen Konstruktorcode mit this
wiederverwenden [00:14:25] Faustregel für verkettete Konstruktoren
[00:15:05] Kapselung und Geheimnisprinzip [00:16:45] Sichtbarkeit
mit public, private und protected regeln [00:20:24] Package-private
in Java [00:22:06] Empfehlungen zur Sichtbarkeit und zu Tests
[00:23:45] Die Java-Sichtbarkeiten im Überblick [00:24:47]
Instanzvariablen vollständig initialisieren [00:27:23] Anfangswerte
im Code setzen [00:29:37] Namenskonflikte mit this auflösen
[00:32:12] Ausblick, Literatur und weiterführende Links Inhalt
Konstruktoren Was macht das Schlüsselwort this? Referenz auf das
aktuelle Objekt. Was ist die Aufgabe eines Konstruktors? Ein Objekt
zu erzeugen und es in einen gültigen Zustand zu versetzen. Wie
definiert man einen Konstruktor? In Java: Methode ohne Rückgabewert
und dem gleichen Namen wie die Klasse. Was ist ein
Default-Konstruktor? Der parameterlose Konstruktor einer Klasse,
der ggfs. durch Java selbst erzeugt wird. Sichtbarkeitsmodifizierer
Wie steuert man die Sichtbarkeit von Attributen und Methoden von
Klassen? Mit den Sichtbarkeitsmodifizierern private, protected,
public und package-private. Was ist die standardmäßige Sichtbarkeit
in Java? package-private Wie kann man Instanzvariablen
initialisieren? Inline bei ihrer Deklaration, im Konstruktor oder
in einer Methode. Muss man Instanzvariablen immer über this
ansprechen? Nein, nur wenn es einen Namenskonflikt gibt.
Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*)
*(direkt beim Rheinwerk-Verlag bestellen*) Links Permalink zu
dieser Podcast-Episode RSS-Feed des Podcasts Controlling Access to
Members of a Class (The Java Tutorials > Learning the Java
Language > Classes and Objects) Rheinwerk Computing :: Java ist
auch eine Insel - 5.2 Privatsphäre und Sichtbarkeit Rheinwerk
Computing :: Java ist auch eine Insel - 5.5 Objekte anlegen und
zerstören Zusammenfassung Mit this auf das aktuelle Objekt
zugreifen Wenn du mit Auto a = new Auto(); ein Objekt erzeugst,
kannst du über die Referenz a seine zugänglichen Methoden aufrufen.
Innerhalb des Objekts steht dir dafür this als Referenz auf das
aktuelle Objekt zur Verfügung. Mit this.kilometerstand += 1;
erhöhst du beispielsweise den eigenen Kilometerstand. In einer
Methode der Klasse Auto bezieht sich this auf das jeweilige
Autoobjekt. Schreibst du es innerhalb einer Methode der Klasse
Autowaschanlage, verweist es auf das aktuelle Objekt dieser Klasse.
Für eine Prüfung kannst du dir die Formulierung merken: this ist
eine Referenz auf das aktuelle Objekt. Konstruktoren und gültige
Objektzustände Beim Erzeugen eines Objekts wird ein Konstruktor
aufgerufen, der dessen Attribute mit gültigen Werten versieht. Der
Zustand eines Objekts ergibt sich aus den aktuellen Werten aller
seiner Attribute. Java gibt Instanzvariablen zunächst
Standardwerte. Numerische Attribute erhalten 0, bei einem
booleschen Attribut ist der Wert false. Referenzen wie
String-Attribute beginnen mit null. Welche Werte fachlich gültig
sind, hängt von deiner Klasse ab. Ein leerer String kann
beispielsweise verhindern, dass der spätere Zugriff auf dieses
Attribut einen Null-Pointer-Fehler auslöst. Wenn du in Java keinen
eigenen Konstruktor definierst, erzeugt die Sprache einen
parameterlosen Default-Konstruktor. Sobald deine Klasse eigene
Schritte braucht, um einen gültigen Zustand herzustellen, musst du
diese selbst programmieren. So sieht ein Konstruktor aus In Java
und C# trägt ein Konstruktor exakt den Namen seiner Klasse,
einschließlich der Groß- und Kleinschreibung. Der Rückgabetyp
entfällt vollständig, auch void. Für die Klasse Auto lautet ein
parameterloser Konstruktor beispielsweise: java Auto() {
this.kilometerstand = 0; } Du kannst Konstruktoren überladen, indem
du unterschiedliche Parameterlisten definierst. Für einen
Gebrauchtwagen lässt sich der vorhandene Kilometerstand direkt beim
Erzeugen übergeben: java Auto(int kilometerstand) {
this.kilometerstand = kilometerstand; } Konstruktoren miteinander
verknüpfen Wenn mehrere Konstruktoren dieselben Attribute setzen,
kannst du den gemeinsamen Code an einer Stelle halten. In Java ruft
ein Konstruktor mit this(...) einen anderen Konstruktor derselben
Klasse auf: java Auto() { this(0); } Auto(int kilometerstand) {
this.kilometerstand = kilometerstand; } Beim Aufruf von new Auto()
wird dadurch der Konstruktor mit dem Kilometerstand 0 ausgeführt.
Ändert sich die gemeinsame Logik, bearbeitest du nur eine Stelle.
Als Faustregel empfehle ich dir, einen Konstruktor mit weniger
Parametern den Konstruktor mit mehr Parametern aufrufen zu lassen.
Dabei übergibt er die passenden Standardwerte. Kapselung und
Geheimnisprinzip Eine Klasse fasst ihre Attribute mit den
zugehörigen Methoden zu einer Einheit zusammen. Das bezeichnet
Kapselung. Beim Geheimnisprinzip hält die Klasse ihre internen
Werte verborgen und kontrolliert, wie andere Klassen darauf
zugreifen dürfen. Am Kilometerstand lässt sich der Zweck erkennen:
Ein direkter Zugriff von außen könnte einen negativen Wert erlauben
oder dazu führen, dass jemand den Kilometerstand eines
Gebrauchtwagens zurücksetzt. Über Sichtbarkeitsmodifizierer legst
du fest, welche Klassen auf Attribute und Methoden zugreifen
dürfen. Sichtbarkeit in Java | Sichtbarkeit | Zugriff möglich für |
| --- | --- | | private | Die definierende Klasse selbst | |
package-private | Die Klasse selbst und alle Klassen im selben
Package | | protected | Die Klasse selbst, Klassen im selben
Package sowie Subklassen außerhalb des Packages | | public | Alle
Klassen | Package-private entsteht, wenn du den
Sichtbarkeitsmodifizierer weglässt. Dafür gibt es in Java ein
eigenes Verhalten, aber kein Schlüsselwort. Ober- und Unterpackages
zählen jeweils als andere Packages. Bei Vererbung kann
beispielsweise die Klasse Cabrio von Auto abgeleitet sein. Mit
protected erhalten Subklassen Zugriff auf die entsprechend
geschützten Member. Für deinen Einstieg empfehle ich dir, Attribute
und Methoden zunächst auf private zu setzen. Anschließend
erweiterst du den Zugriff gezielt dort, wo deine Klasse ihn
braucht. Package-private kann zusammengehörigen Klassen innerhalb
eines Packages Zugriff auf interne Member geben, etwa in einem
Framework. Auch Testklassen im selben Package können so auf
entsprechend zugängliche Methoden zugreifen. Ich habe dafür in
meiner Praxis bislang keinen Bedarf gehabt und empfehle, private
Methoden nicht direkt zu testen. Instanzvariablen vollständig
initialisieren Wenn du eine Klasse programmierst, kennst du ihre
internen Abläufe und die Bedingungen für gültige Werte. Dieses
Wissen gehört in die Klasse. Andere Entwickler:innen sollen mit
einem neu erzeugten Objekt arbeiten können, ohne erst eine
bestimmte Folge von Setter-Aufrufen kennen zu müssen. Java und C#
erzwingen eine solche Folge späterer Methodenaufrufe nicht. Deshalb
muss deine Klasse selbst dafür sorgen, dass notwendige Schritte in
der richtigen Reihenfolge stattfinden, einschließlich
erforderlicher Berechnungen oder Datenbankzugriffe. Du kannst einen
festen Anfangswert direkt bei der Deklaration setzen: java private
int kilometerstand = 0; Im Konstruktor lässt sich der Wert
ebenfalls zuweisen, beispielsweise anhand eines übergebenen
Parameters. Für komplexere Berechnungen kannst du eine eigene
Methode schreiben, die das Attribut setzt. Der Konstruktor muss
diese Methode dann aufrufen, damit das Objekt anschließend einen
gültigen Zustand hat. Wann du this beim Zugriff brauchst Bei einem
eindeutigen Attributnamen kannst du innerhalb der Klasse direkt
kilometerstand = 0; schreiben. Hat ein Parameter oder eine lokale
Variable denselben Namen, wird dieser Name im näheren
Gültigkeitsbereich verwendet. Im folgenden Konstruktor bezeichnet
kilometerstand den Parameter. Über this.kilometerstand sprichst du
ausdrücklich das Attribut des aktuellen Objekts an: java Auto(int
kilometerstand) { this.kilometerstand = kilometerstand; } Du kannst
den Parameter auch neuerKilometerstand nennen. Dann ist mit
kilometerstand = neuerKilometerstand; eindeutig, welcher Wert
welchem Attribut zugewiesen wird. Weiterführendes Material Unter
anwendungsentwicklerpodcast.de/44 habe ich einen
Oracle-Tutorialartikel mit einer Matrix zu den Sichtbarkeiten
verlinkt. Dort findest du auch die Literaturempfehlungen
"Einführung in Java" und "Java ist auch eine Insel". Getter und
Setter sowie das Single Responsibility Principle sind für eine
folgende Folge vorgesehen. Transkription der gesamten Episode
Automatisch erzeugte Transkription der Episode [0:01] Herzlich
willkommen zum Anwendungsentwickler-Podcast, dem Podcast rund um
die Ausbildung zum Fachinformatiker [0:08] für
Anwendungsentwicklung. In dieser Episode geht es um eine weitere
Lernzielkontrolle zum Thema Objektorientierung. Viel Spaß! [0:15]
Hallo und herzlich willkommen zur 44. Episode des
Anwendungsentwickler-Podcasts. [0:26] Mein Name ist Stefan Mackel
und heute kommt Nummer 2 meiner Lernzielkontrollen zum Thema
Objektorientierung. [0:33] Beim letzten Mal, was ja schon jetzt
etwas länger her ist,...
Episode melden

„Objektorientierung Teil 2 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #44“

Worum geht es? Danach fragen wir noch nach dem Grund.

Teilen

Mein Archiv

Deine Privatkopie der Folgen, die du nicht verlieren willst.

Podcast-Folgen verschwinden. Feeds werden auf die letzten Episoden gekürzt, Hoster räumen alte Dateien ab, Formate wechseln den Anbieter und lassen ihr Archiv zurück. Mit „Mein Archiv“ sichert podcast.de die Folgen deiner Podcasts für dich — angefangen bei den ältesten, denn die sind zuerst weg.

  • Deine gesicherten Folgen bleiben hörbar, auch wenn das Original offline geht.
  • Auch Folgen, die im heutigen Feed gar nicht mehr stehen — podcast.de kennt sie noch.
  • Herunterladen bleibt möglich, solange die Folge beim Podcaster liegt. Der zählt seine Abrufe wie bisher.
Startet bald

Sei beim Start von Mein Archiv dabei

Mein Archiv ist fast fertig. Trag dich ein, dann bekommst du eine E-Mail, sobald es losgeht – und bist von Anfang an dabei. Wir schreiben dir nur zum Start, keine Werbung, keine Weitergabe deiner Daten.

Du bekommst zuerst eine Bestätigungsmail. Abmelden geht jederzeit. Datenschutz