24
Informatik B (Subject) / Klausurvorbereitung (Lesson)
Klausurvorbereitung
This lesson was created by Eike_OS.
This lesson is not released for learning.
Advertisement
- Singleton Erzeugt nur eine Instanz der KlasseKonstruktor muss privat seinDefinition einer Klassenmethode zur Instanzerzeugung (getInstance())Singleton wird selbst als Attribut mitgeführt
- Programmiersprachenparadigmen 1. Imperativ & Prozedual2. Funktional3. Logisch4. Objektorientiert
- Grundregeln des dynamischen Bindens 1. Sei B Subklasse von A, bzw. A Superklasse von B A a = new B(); geht B b = new A(); geht nicht2. Der Compiler überprüft immer statisch auf der Basis der im Code angegeben Typdeklaration3. Eine dynamische Bindung findet zur Laufzeit ausschließlich für sichtbare Methoden statt
- Generics bedeutet Typunabhägigkeitvermeidung von redundanten Codeerlauben Typsicheres erzeugen von Instanzenkeine Generics für primitve Datentypen
- Umsetzen von Generics 1. Heterogene Realisierung: Für jeden Typparameter wird individueller Code erzeugt2. Homogene Realisierung: Für jede parametrisierte Klasse wird genau eine Klasse erzeugt. Statt des generischen Typs wird der Typ Object eingesetzt. Für jeden konkreten Typ werden Typanpassungen in die Anweisung eingesetzt (Java)
- Java Collection Framework (JCF) DIE Klassenbibliothek in JavaZiel: Objekte sammlen, speichern, verwalten14 Interfaces zu denen abstrakte und konkrete Klassen existierenKlasse Collections stellt Klassenübergreifende Algorithmen für Collection bereit
- Wichtigsten Interfaces des JCF Interface Collection (Basis Interface)Interface SetInterface ListInterface QueueInterface Map (nicht dem Collection Interface untergeordnet)
- Wichtigsten Implementierungen des JCF ArrayListLinkedListHashSetTreeSetHashMapTreeMapLinkedHashMapVector & Stack
- Iterator-Pattern kapselt häufig genutzte Funktionen & hält diese seperat bereitermöglicht sinnvolles Zugreifen auf Datenstruktur, ohne das sich für den Nutzer groß ws ändert bei einer anderen DatenstrukturDatenstruktur muss Iterable sein und damit die Methode createIterator() implementierenimplemetiert die Methoden: public boolean hasNext(); public T next(); public void remove(); (falls nicht implemetiert, sollte Exception geworfen werden)
- Innere Klassen 1. statische innere Klassen (kein Objekt der umgebenden Klasse zur Erzeugung notwendig, können nur auf statische Eigenschaften der umgebenden Klasse zugreifen)2. Mitgliedsklasse (Objekt der umgebenden Klasse notwendig zur Erzeugung, können auf ALLE Eigenschaften der umgebenden Klasse zugreifen)3. Lokale Klassen (werden in Anweisungsblöcken von Methoden, Konstruktoren etc. definiert)4. Anonyme innere Klasse (abgeleitete Unterklasse ohne eigenen Namen, keine Konstruktoren)
- Advertisement
- Visitor-Pattern kann Operation beim Besuch von Elementen einer Objektstruktur anwendenKlasse muss "visitable" sein und die Methoden public Visitor accept() und getState() implementierenhat die Methode visit(e:Object)
- Fileobjekt Objekt für I/O Aktivitätenrepräsentiert eine Datei oder ein Verzeichnis im System
- I/O Streams benötigt um Zugriff auf Dateiinhalte zu bekommenfunktioniert als eine Art Pipelinegebunden an speziellen Typ für das Ein-/Ausgabeobjekt
- Decorator-Pattern dekoriert Objekte flexibel durch VererbungMethode operation() muss implemetiert werden
- Serialisierung benötigt um ein aktives Objekt in eine transportable/speicherbare Form zu bringenKlasse muss Markerinterface Serializable implementierenKlassenvariablen werden nicht serialsiertVariablen die nicht realisiert werden sollen müssen durch das Schlüsselwort "transient" markiert werden
- Thread Beendung 1. run() ist durchgelaufen2. RuntimeException in run()3. von außen durch stop()4. von außen durch interupt()5. Ende der JVM
- Thread Zustände 1. NEW created (durch new Thread()) - 22. RUNNABLE (durch start()) - 33. execute on CPU - 4, 54. suspended (drei Möglichkeiten: BLOCKED, WAITING, TIMED_WAITING) - 35. TERMINATED
- Synchronisation von Threads 1. ressourcenorientiert durch Schutz von Ressourcen2. zugriffsorientiert durch synchronisation des Zugriffs
- volatile, synchronized volatile dient als Abhilfe beim DirtyRead/Lost Update-Problem --> funktioniert nur bei atomaren Anweisungen auf die mit volatile gekennzeichnete Objekt/Klassenvariablesynchronized dient dem sperren von Methoden mit Hilfe eines Monitors, so dass nur ein Thread die Methode ausführen kann
- Synchronisation durch Kommunikation durch die Schlüsselmethoden wait() und notifiy() in einem synchronized BlockThreads müssen dafür am gleichen Monitor synchronisiert sein
- Wichtigste GUI Steuerelemente ButtonLabel (Textzeile auf dem Bildschirm, nur durch Programm zu ändern)TextField & TextArea (Eingabe und Anzeige von Textzeilen)Canvas (Fläche zur Bildausgabe)Choice (Auswahlfeld, das durch Klicken Liste mit Einträgen aufblendet)ListCheckboxScrollbar (Schieberegler)
- Anordnen von GUI Elementen durch den LayoutManagerWichtigste LayoutManager:FlowLayout (ordnet Komponente zeilenweise von oL nach uR an)BorderLayout (unterteilt Fläche in 5 Bereiche)GridLayout (Komponenten werden in ein Raster gleicher Größe gesetzt)CardLayout (Komponenten werden wie Ebenen von Karten in einem Spiel verwaltet)GridbagLayout (Erweiterung vom GridLayout)Null-Layout (erlaubt Pixelgenaues positionieren)
- Event Handling in der GUI Durch sogenannte Listener:FocusListenerKeyListenerMouseListenerMouseMotionListenerMouseWheelListenerwerden mit Hilfe von Adaptoren initialisiert (anonyme innere Klasse)
- Observer Pattern Definiert eine 1:n Abhängigkeite von einem Subject, welches mit beliebig vielen Observern InterargiertÄndert das Subject seinen Zustand, informiert es seine ObserverImplementiert eine Klasse das Interface Observer muss sie die Methode update(Observable o, Object arg) implementieren