JAVA & Objektorientiertes Programmieren
Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.
Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.
Kartei Details
Karten | 500 |
---|---|
Lernende | 19 |
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 04.12.2016 / 16.08.2024 |
Weblink |
https://card2brain.ch/box/java_objektorientiertes_programmieren
|
Einbinden |
<iframe src="https://card2brain.ch/box/java_objektorientiertes_programmieren/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was ist speziell bei finalisierten Klassen?
Finalisierte Klassen können nicht mehr spezialisiert (vererbt) werden.
Alle enthaltenen Methoden sind damit implizit auch final
Was ist der Zweck einer finalisierten Klasse?
Man verhindert damit explizit die Spezialisierung von Klassen, wenn Sie dafür nicht vorgesehen oder ungeeignet sind.
Tipp: Klassen entweder für Vererbung auslegen, oder andernfalls explizit verhindern (finalisieren) - Aber ist ein (essentieller) Desingentscheid
Was ist (gemäss Faustregel) besser:
Zu viel als zu wenig oder zu wenig als zu viel finalisieren?
Analog zur Datenkapselung (so privat wie möglich, so öffentlich wie nötig) finalisiere besser zu viel als zu wenig! Etwas wieder veränderbar zu machen ist kein Problem, etwas nachträglich zu finalisieren hingegen fast unmöglich!
Klasse explizit für Spezialisierung entwerfen, oder aber final machen!
Was ist der Hauptvorteil von Enumerationen?
Neben ihrer leichten Verständlichkeit, Aussagekräftigkeit ist ihr Hauptvorteil jedoch, dass sie typsicher sind.
Wie deklariert man in einem UML Enumerationen?
mit dem Stereotyp <<enum>>
Wo werden Enumerationen eingesetzt?
Sie können wie jede andere Klasse als Typen verwendet und eingesetzt werden. Beispiel:
Season current = Season.AUTUMN;
Sie können auch in switch-Statements als Typ verwendet werden.
Enumerationen sind normale Klassen mit welchen vier Ausnahmen?
- sie werden mit dem Schlüsselwort enum deklariert (statt class)
- sind implizit finalisiert (keine Spezialisierung)
- besitzen einzelne Enum-Werte implizit als final und static (Klassen-)Attribute
- werden automatisch instanziiert (privater Konstruktor)
Wie liefert man für Enumerationen eine String-Repräsentation (z.B. für Persistierung in eine Datei o.ä.)?
mit der toString()-Methode
Wie liefert man für eine String-Repräsentation den passenden Enumerationswert?
mit der Methode valueOf(...)
Enumerationen sollten tendenziell 1.)_______ eingesetzt werden. Nutzen und Eleganz von Enumerationen wird oft 2.)__________
Was sind die Haupteigenschaften einer Set<E>?
Definiert eine Menge von Objekten des Typs E
- Jedes Objekt kann nur ein einziges Mal enthalten sein (equals() und hashCode() für Gleichheit. Spezialfall: null ist (im Set aber auch nur einmal) erlaubt!
- Objekte, die in einem Set eingefügt sind, sollten nicht mehr verändert werden!
Objekte, die in einem Set eingefügt sind, sollten nicht mehr verändert werden! Weshalb?
Durch die Veränderung könnten identische Objekte entstehen, was die Semantik verletzen würde
Empfehlung: Objekte für/vor Veränderung entnehmen und danach neu einfügen!
Nenne ein paar Implementationen (Beispiele) für Set<E>
HashSet, LinkedHashSet, TreeSet, EnumSet etc
Was sind Eigenschaften von List<E>?
- Geordnete Datenstruktur von Elementen vom Typ E (Geordnet: Elemente halten ihre Position, sind aber nicht sortiert)
- Eine Liste kann mehrmals das gleiche Objekt enthalten
- Der Nutzer hat die Kontrolle, an welcher Stelle der Liste die Elemente eingefügt werden -> Index
- Zero-base Index: Das erste Element hat den Index 0