- Häufige Fragen im Fachgespräch – Objektorientierung – Anwendungsentwickler-Podcast #2
- Häufige Fragen im Fachgespräch – Kapselung – Anwendungsentwickler-Podcast #6
- Häufige Fragen im Fachgespräch – Vererbung – Anwendungsentwickler-Podcast #8
- Häufige Fragen im Fachgespräch – Polymorphie – Anwendungsentwickler-Podcast #10
- Häufige Fragen im Fachgespräch – Programmierung (Teil 1) – Anwendungsentwickler-Podcast #12
- Häufige Fragen im Fachgespräch – Programmierung (Teil 2) – Anwendungsentwickler-Podcast #13
- Relationale Datenbanken – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #17
- Normalisierung – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #18
- SQL – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #19
- Erläuterung der Gehaltsabrechnung – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #46
- Zusammensetzung des Stundensatzes – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #47
- Testverfahren für Software – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #94
- Unit-Tests – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #95
- Rückblick auf die Fachgespräche der Sommerprüfung 2022 (Fachinformatiker:in Anwendungsentwicklung) – IT-Berufe-Podcast #177
- Handelskalkulation, Skonto und Rabatt – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #148
In der sechsten Episode meines Anwendungsentwickler-Podcasts setze ich meine Reihe über häufige Fragen im Fachgespräch fort. Dieses Mal geht es um die Kapselung im Rahmen der Objektorientierung.
Podcast: Play in new window | Download (Duration: 18:51 — 8.7MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Beantwortung der Frage im Fachgespräch
- Objekte bilden Dinge der realen Welt ab. Sie haben Eigenschaften und Funktionen. Beispiel: Person mit Eigenschaft
Geburtstag
und Funktiongruesse()
. - In der Objektorientierung nennt man die Eigenschaften Attribute und die Funktionen Methoden.
- Klassen sind Baupläne für Objekte. Sie definieren, welche Attribute und Methoden jede Instanz der Klasse – das Objekt – hat. Die konkreten Ausprägungen der Werte der Attribute – der Zustand des Objekts – kann (muss aber nicht) bei jedem Objekt unterschiedlich sein.
- Objekte müssen zu jeder Zeit in einem gültigen Zustand sein, d.h. die Attribute müssen gültige Werte haben.
- Jedes Objekt ist dafür verantwortlich, seinen gültigen Zustand beizubehalten. Daher muss es den Zugriff auf seine Attribute einschränken können.
- Außerdem sollte ein Objekt nicht nach außen hin preisgeben, wie es funktioniert, sondern nur, was es macht.
- Dieses Prinzip wird auch Geheimnisprinzip genannt.
- Um den Zugriff auf Attribute und Methoden zu steuern, können Sichtbarkeitsmodifizierer verwendet werden.
private
= nur die Klasse selbst hat Zugriff,protected
= die Klasse selbst und von ihr abgeleitete Klassen haben Zugriff,public
= alle haben Zugriff.
- Der Zugriff auf Attribute von außen sollte ausschließlich über spezielle Methoden – Getter und Setter – möglich sein.
- Setter erlauben die Prüfung der zu setzenden Werte und sorgen damit dafür, dass das Objekt immer in einem gültigen Zustand ist. Beispiel:
Geburtsdatum
wird vor dem Setzen auf ein gültiges Datum ab01.01.1900
geprüft. - Getter erlauben die Berechnung von Werten, anstatt sie in Attributen abzulegen. Beispiel:
Alter
einer Person wird zur Laufzeit anhand des AttributsGeburtsdatum
ermittelt.
- Setter erlauben die Prüfung der zu setzenden Werte und sorgen damit dafür, dass das Objekt immer in einem gültigen Zustand ist. Beispiel:
Tiefergehende Diskussion
- In Java gibt es noch den Sichtbarkeitsmodifizierer
package-private
(kein expliziter Modifizierer angegeben) = nur die Klasse selbst und Klassen im gleichen Package haben Zugriff. - Objekte kapseln Attribute und die zugehörigen Methoden, d.h. die Methoden sollten die Attribute verwenden.
- Optimalerweise verwenden alle Methoden einer Klasse alle Attribute der Klasse. Man spricht dann von einer hohen Kohäsion.
- Dieses Prinzip wird auch Single Responsibility Principle genannt: „There should never be more than one reason for a class to change.“
- Im Vergleich zur prozeduralen Programmierung hat die Kapselung von Attributen und den zugehörigen Methoden den Vorteil der besseren Wiederverwendbarkeit. Eine Klasse kann als Ganzes (wie eine Kapsel) verwendet werden.
Tipps für die Entwicklerpraxis
- Daumenregel: Alle Attribute
private
machen. - Auch wenn es ggfs. nicht nötig ist, die Sichtbarkeitsmodifizierer immer explizit angeben, damit der Code leichter zu verstehen ist.
- Getter und Setter erst einführen, wenn sie wirklich benötigt werden (YAGNI).
- Getter und Setter können von der meisten IDEs generiert werden.
- In C# werden anstatt Gettern und Settern Eigenschaften (Properties) verwendet.
Literaturempfehlungen
- *
(direkt beim Rheinwerk-Verlag bestellen*) - Das passende Kapitel im OpenBook: 9 Grundlagen der Programmierung – Rheinwerk Computing :: IT-Handbuch für Fachinformatiker
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- Anwendungsentwickler-Podcast #2: Häufige Fragen im Fachgespräch – Objektorientierung
- You Aren’t Gonna Need It
- Cohesion metrics
- SRP: The Single Responsibility Principle
- Datenkapselung (Programmierung)
- Eigenschaften (C#-Programmierhandbuch)
- Create Getters and Setters – Eclipse Platform
Weitere Infos zum Fachgespräch
Du suchst noch mehr Tipps rund um das Fachgespräch? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um das Fachgespräch.
Kennst du schon meine Hörbücher zur Vorbereitung auf das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im Detail durch und gebe Tipps für die Beantwortung.
Und wenn du dich für meinen Newsletter einträgst, bekommst du immer direkt alle Neuigkeiten von dieser Seite in dein Postfach geliefert.
Jetzt anmelden!
Neueste Kommentare