20 Modellierung / UML
Video
Eigentlich haben wir Polymorphie schon in vielen anderen Beispielen verwendet, ohne etwas davon mitzubekommen. In dieser Lektion werden wir uns aber noch einmal bewusst damit auseinander setzen. Definition Polymorphie bedeutet Vielgestaltigkeit und besagt in ihrem einfachsten Fall, dass Funktionen nach außen hin gleich aussehen (die gleiche Signatur haben), aber unterschiedliches Verhalten implementieren. Dynamisches Binden Am…
DetailsSortieralgorithmen sind in der Informatiker-Ausbildung sehr beliebt. Wir werden in der zugehörigen Übung Arrays mit verschiedenen Sortieralgorithmen sortieren. Darunter BubbleSort und SelectionSort. Es gibt aber noch viel mehr solcher Algorithmen. Algorithmen allgemein Verfahren mit einer endlichen Beschreibung unter Verwendung wohldefinierter Einzelanweisungen. Beachten Sie, dass die Beschreibung endlich sein muss, nicht die Laufzeit/Ausführung. Ein wohldefinierter Einzelschritt…
DetailsDefinition Ein Array ist eine indizierte Datenstruktur. In einem Array speichert man gleichartige Daten, auf die man mit Hilfe des Index schnell und effizient zugreifen kann. Die Länge eines Arrays (also die Anzahl der Daten, die gespeichert werden soll), muss bereits bei der Initialisierung des Arrays bekannt sein und kann im Nachhinein nicht mehr geändert…
DetailsWie in Kapitel 14 festgestellt, können in der Praxis auch sog. null-Referenzen auftreten. Also Referenzen auf dem Stack, die auf kein Objekt auf dem Heap zeigen. Man kann den Compiler konkret anweisen, null-Referenzen zuzulassen, indem man sog. nullable-Datentypen verwendet. Das geht sehr leicht. Bei der Deklaration eines Wertes ergänzt man den Datentyp einfach mit einem…
DetailsWie wir bereits wissen, besitzen Objekte einen Zustand und ein Verhalten. Der Zustand wird durch die Properties beschrieben und das Verhalten durch die Funktionen. Der Zustand eines Objekts kann verändert werden. Solche Zustandsübergänge wollen wir am Beispiel einer Ampel erst selbst implementierung und in einem grafischen Modell erfassen. Hierbei lernen wir Zustandsübergangsdiagramme und Sequenzdiagramme kennen.…
DetailsSpeicherverwaltung in JVM-Sprachen Bevor wir uns genauer mit dem Lebenszyklus von Objekten auseinander setzen, wollen wir erst verstehen, wie denn zur Laufzeit des Programms (innerhalb der JVM) Objekte (oder Werte) gespeichert werden. Grundsätzlich werden alle Objekte (in Kotlin ist alles ein Objekt) zur Laufzeit im Hauptspeicher des Computers abgelegt. Ein Enten-Objekt, welches wir auf diese…
DetailsAllgemeines Wir wollen Planetensystem animieren, in welchem Planeten um die Sonne kreisen. Hier werden wir abstrakte Klassen kennen lernen und eine etwas kompliziertere Berechnung für die Animation. Vorbereitungen Erstellen Sie die Klassen Stern, Planet, Gasplanet, Gesteinsplanet und Umlaufbahn nach dem folgenden Klassendiagramm. Informieren Sie sich ggf. über die Unterschiede zwischen Gesteins- und Gasplaneten. Das <<abstract>>…
DetailsSchleifen sind ebenso wie die bedingten Anweisungen auch Kontrollstrukturen. Hier tritt allerdings keine Verzweigung auf, sondern es können Codeblöcke wiederholt werden.
Der Programmablauf (oder Kontrollfluss) eines Computerprogramms beschreibt die zeitliche Abfolge der Ausführung der Befehle. In einem einfachen Programm werden die Befehle von oben nach unten (Zeilen 1, 2, 3, …) abgearbeitet.
Nachdem Sie in der Lage sind, Subklassen der Klasse CanvasElement zu erzeugen und diese anzeigen können, sollen diese Elemente nun animiert werden. Hierzu sehen wir uns die dafür notwendigen Funktionsaufrufe an. Hinweis: Im folgenden Klassendiagramm sind einige Properties und Methoden nicht aufgeführt, falls diese für diese Aufgabe unnötig sind. Die abstrakte Klasse CanvasElement hat eine…
DetailsKlassenkarten Zur besseren Veranschaulichung, Strukturierung und zur Modellierung von Software haben Sie bereits in den vorangegangenen Jahrgangsstufen das Werkzeug der Klassendiagramme kennen gelernt.
DetailsNachdem das Video angesehen wurde, sollten Sie üben, eigene Klassen zu erstellen und Objekte zu erzeugen. Experimentieren Sie mit Konstruktoren und Properties.
Wenn wir Werte (Zahlen, Zeichenketten (Wörter, Sätze, Kapitel, ganze Bücher, …), Buchstaben,… )in Kotlin (oder jeder anderen Programmiersprache) speichern oder verarbeiten wollen, müssen wir in der Regel einen Datentyp hierfür angeben.