Fehlerbehandlung, Exceptions, Module Flashcards
Wozu führt Modularität?
Beherrschung von Komplexität
Wieso führt Modularität zur Beherrschung von Komplexität?
- weniger Elemente zu betrachten: Entlastung Kurzeitgedächtnis
- Zusammengehöriges zusammenfassen: Konsistenz
- Abhängigkeiten und Details vor allem innerhalb Modul, Entkopplung zwischen Modulen: Veränderungen wirken sich möglichst klein aus und sind absehbar
Wann ist ein Zugriff auf ein Modul möglich?
Nur wenn expliziz freigegeben, Ändrungen der Klienten ändern das Modul nicht
Was ist das Geheimnisprinzip?
Module trennen in Schnittstelle und Implementation
Wieso können Klassen mehr als Module?
- definieren Typen mit Exemplaren
- sind polymorph verwendbar: Methoden überschreiben/überladen
- haben Vererbungsbeziehungen zueinander: Hierachien
Was kann ein Paket enthalten?
- Klassen
- Interfaces und
- Pakete
Was schafft man durch Pakete?
Entkopplung durch Kapselung
- Zugriff beschränken
- Namensraum und
- Übersetzungseinheit, sparen von Übersetzungszeit, weil nur das eine Paket übersetzen, nicht das ganze Projekt
Was ist der Namensraum?
- Häufige Namen, wie List oder File können häufiger verwendet werden, da sie durch die Namensnennung der Pakete eindeutig bestimmbar sind
- Paketname implizit Präfix von Klassen und Interfaces
Was ist ein vollqualifizierter Name?
Paketname.Typname
Was bedeutet Eindeutigkeit im Bezug auf Pakete?
Jede Klasse kann nur einem Paket zugehörig sein
Für was ist etwas ohne Modifier sichtbar?
Nur für innerhalb des Pakets
Wie wird ein Paket deklariert?
am Anfang einer Übersetzungseinheit: package paketname;
Wozu gehören Dateien ohne explizite Deklaration?
Zu einem Default-Package
Was bildet die Export-Schnittstelle eines Pakets?
alles als public deklarierte
Wozu wurden native Module eingeführt?
Um die Sichtbarkeit besser explizit zu steuern
Welche Vorteile haben native Module?
- Prüfung durch Compiler: Konfiguration gültig, Sichtbarkeit realisiert, Zyklenfreiheit
- Aussagekräftige Fehlermeldungen
- Java API besser skalierbar: ausblenden wenn nicht benötigt - Werkzeug jlink hilft
Von wie vielen Module darf ein Paket exportiert werden?
Nur von enem Modul
Welche Regeln gibt es für native Module?
- Jedes Paket darf nur von einem Modul exportiert werden
- Zyklische Abhängigkeiten zwischen Modulen sind verboten
Wie exportiert man ein package zu einem anderen Modul?
Für wen ist Kundennummer sichtbar?
Für Alle
Für wen ist Kundennummer sichtbar?
Für alle Klassen im selben Modul
Für wen ist Kundennummer sichtbar?
Für alle Klassen im selben Modul
Für wen ist Kundennummer sichtbar?
Für alle Klassen im selben Modul und im Modul se3
Was sind Entwicklungsfehler?
von Entwicklern gemacht