Mathe und Info

Seite
Menü
Info

DI91 - IK [Java]

hier findet ihr die gesammelten Aufgaben der letzten Wochen (neueste oben, älteste unten)

 


DI91 - IK Implementierungsübungen zu Aggregation und Komposition

Abgabetermin: keiner

Abschliessend zu diesem Thema wurden heute nur noch Implementierungsübungen zu Aggregation und Komposition durchgeführt.

Auf der ausgeteilten Präsentation gibt es ab Folie 17 verschiedene Übungen.

[Link zur Präsentation]

Von Schülern wurden dabei folgende Aufgaben bereits implementiert und stehen hier zum Download zur Verfügung:

Aufgabe 1: [Musterlösung 1]

Aufgabe 2+3: [Musterlösung 2]

 


DI91 - IK Objektdiagramm, Beziehungen zwischen Klassen

Abgabetermin: 22.06.2020

In dem Präsenzunterricht wurde heute das sogenannte Objektdiagramm und Beziehungen zwischen Objekten/Klassen besprochen. Dabei wurde ein Klassendiagramm entwickelt:

letzte Stunde: [Arbeitsblatt zu Modellierung einer Wetterstation]

letzte Stunde: [zugehörige Musterlösung der Aufgabe]

 

Objektdiagramm als Ergänzung zum Klassendiagramm

ein normales Klassendiagramm dieser Wetterstations Aufgabe sieht so aus:

 

Wie stellt man aber folgenden Code-Ausschnitt grafisch mit geeigneter Schreibweise dar? Hier werden ja zwei Instanzen der Klasse erzeugt, aber im Klassendiagramm gibt es nur eine Klasse.

CodeSample:

 

Dies wird mit Objektdiagrammen erledigt. Aber was ist ein Objektdiagramm? Schauen wir uns zunächst eine Übersicht an:

Eine schöne Zusammenfassung aller möglichen Diagramme (da steht zwar Datenbanken drüber, aber die Symbolik funktioniert beim Programmieren genauso) findet man hier:

externer Link: [Modellierung von Objekten in UML2]

 

Zusammenhang Objektdiagramm und Code

Wenn man dann das auf den obigen Code-Ausschnitt anwendet, dann sieht das so aus

 

 

Wenn man die Schreibweise erst verstanden hat, dann ist es sehr einfach, es zu erklären dauert leider länger. Ich hoffe aber, dass es jetzt eingängig war.

 

Beziehungen (Assoziationen) zwischen Klassen/Objekten

Objekte existieren häufig im Speicher, so dass sie mit anderen Objekten zusammenhängen. Damit meint man, dass beispielsweise ein Objekt in einer Referenz gespeichert wird, die ein Attribut einer Klasse ist.
Zu schwierig? Dann schaut Euch mal folgendes Video an:

externer Link: [Twitch Videostream Unterricht: Objektdiagramm und Beziehung zwischen Objekten]

Wenn man Objekte miteinander in Beziehung setzt, dann muss man noch zwei weitere spezielle Unterarten dieser Assoziation (Beziehung) unterscheiden.
Diese Beziehungen können aber schon im KLassendiagramm eingetragen werden, da bereits zur Entwicklung des Codes klar ist, welche Klasse Attribut oder Parameter einer anderen Klasse ist.

 

Komposition und Aggregation

Wenn Objekte erzeugt werden, dann können sie im Hauptprogramm oder im Konstruktor einer Klasse erzeugt werden. Die Begriffe Komposition und Aggregation bezeichnen dabei, wann und wo die Objekte erzeugt werden und wie sie zusammenhängen. Das kann man schlecht ohne Beispiele erklären, daher gibt es auch hier ein Erklärvideo:

externer Link: [Twitch Video: Unterschied zwischen Komposition und Aggregation]

[Infoblatt mit der vollständigen Präsentation]

 

Übungsmaterial

Schauen wir uns das folgende Infoblatt zu Assoziationen an, dann ist darauf ein Beispiel einer Klasse Kunde und einer Klasse Ware erläutert. In dem Text wird nur auf Assoziationen eingegangen, aber wenn man sich das genau anschaut, dann handelt es sich um eine Aggregation.

[Infoblatt Assoziationen von Klassen mit Code-Beispiel]

Das zugehörige Klassendiagramm sieht so aus:

 

Aufgabe:

Zur Sicherung der heutigen Stunde soll ein etwas komplexeres Beispiel einer Immobilienverwaltung implementiert werden.

[Arbeitsblatt Immobilienverwaltung]

1. Entwerft zunächst ein geeignetes Klassendiagramm, welches auch die Beziehung zwischen der Klasse Makler und der Klasse Haus darstellt.

2. Erzeugt weiterhin ein Java-Projekt und implementiert euer Klassendiagramm, unabhängig davon, ob man damit die gestellt Aufgabe komplett erledigen kann.

In der nächsten Präsenzstunde wird an diesem Projekt weiterentwickelt und ich werde eure Lösungen dazu benutzen, die verschiedenen Probleme / Aspekte der verschiedenen Lösungen am Montag zu besprechen.

[Musterlösung der Immobilienverwaltung inklusive Klassendiagramm] <--jetzt verfügbar

 

Sicherung der bisherigen Inhalte:

Zur Selbstkontrolle ob man die Inhalte verstanden hat, habe ich hier ein paar "Ich kann ... " Infoblätter zum Download gestellt. Nutzt die Fragestellungen um Euch zu überprüfen. Ansonsten wisst Ihr zumindest, was ihr nochmal anschauen müsst.

[Zusammenfassung Konstruktoren]

[Ich kann ... - Konstruktoren]

[Ich kann ... - Assoziationen]

 


DI91 - IK Methoden, Konstruktoren, Scope von Variablen, Assoziationen

Abgabetermin: 15.06.2020

In dem Präsenzunterricht wurde heute nochmal besprochen, wie Klassen und Laufzeitobjekte miteinander zusammenhängen und was der Begriff Referenz bedeutet:

externer Link: [Twitch Videostream Unterricht: Von Klassen zu Objekten und was ist eine Referenz]

 

Nachdem man sich nun damit auseinandergesetzt hat, wie man eine Klasse implementiert, muss man die entsprechenden Objekte (auch Instanzen genannt) zur Laufzeit des Programms erstellen.

Dazu sollte das folgende Arbeitsblatt implementiert werden:

[Arbeitsblatt zu Modellierung einer Wetterstation]

[Musterlösung der Aufgabe] <-- die Musterlösung ist jetzt verfügbar.

 

Die Modellierung und Implementierung der Methoden dieser Klasse erzeugt aber noch keine Laufzeitobjekte:

Dazu müssen Referenzen (siehe obiges Video) deklariert werden. Die Verwendung der Referenz hängt aber davon ab, wo sie deklariert worden ist. Wenn man Variablen/Referenzen deklariert, dann hängt ihr Gültigkeitsbereich von dem sogenannten Scope ab. Im Regelfall ist das der Bereich zwischen zwei geschweiften Klammern.
Wenn jedoch mehrere Klammern immer wieder auf- und zugehen, dann kommt man gerne durcheinander.

Dazu dient die folgende Übung sich klar zu machen, wannn welche Variable wo gilt:

[Arbeitsblatt zu Variablen Scope]

 

Nachdem wir jetzt uns im Klaren sind, wo Referenzen gelten, müssen wir noch Laufzeitobjekte (also Instanzen unserer Klasse Wetterstation) erzeugen:

externer Link: [Twitch Video: Wie erstelle ich Laufzeitobjekte einer Klasse]

 

Die Erstellung der Objekte/Instanzen einer Klasse passiert also in der main Methode des Hauptprogramms. Dabei achten wir bis auf weiteres darauf, dass alle von uns erstellten Referenzen als lokale Variablen in main erstellt werden.

Aber was passiert eigentlich bei dem Befehl: "new Wetterstation();"

externer Link: [Twitch Videostream Unterricht: Die Bedeutung des Konstruktors]

[Infoblatt zu Konstruktoren in Java]

 

Aufgabe:

Die DI91-1 hat die Aufgaben bereits fast vollständig im Präsenzunterricht heute erledigt. Daher ist die folgende Aufgaben mehrheitlich für die DI91-2:

1. Bearbeitet Übung 2 des Arbeitsblattes zu "Variablen-Scope":

[Arbeitsblatt zu Variablen Scope]

2. Erzeugt weiterhin ein Java-Projekt und implementiert die Aufgabe zu dem Wetterstation Beispiel:

[Arbeitsblatt zu Modellierung einer Wetterstation]

3. Erstellt für die Klasse Wetterstation einen geeigneten Konstruktor, der die Attribute auf geeignete Werte setzt.

Falls Ihr das Arbeitsblatt nicht programmieren könnt, wartet bis Samstag und ergänzt in der Musterlösung (ab Freitag verfügbar) einen Standard-Konstruktor und einen Parameter-Konstruktor.
Abgabe bitte per Dropbox. Der Link dazu kommt in den nächsten Tagen.

 


DI91 - IK Begriffe Objektorientierung, Modellierung mit Klassendiagrammen

Abgabetermin: 03.06.2020

In dem Präsenzunterricht haben wir heute die Grundbegriffe der Objektorientierung nochmal wiederholt und die Darstellung mit Hilfe eines "Klassendiagramms" besprochen.

externer Link [Twitch Video - Unterrichtsausschnitt: Grundbegriff OOP und Klassendiagramm]

[Infoblatt Was sind Klassendiagramme]

Anschließend sollte ein Klassendiagramm zu einer gegebenen Ausgangssituation erstellt werden.

Ein Klassendiagramm kann man sich so ähnlich vorstellen, wie das Modellieren einer Datenbank. Das bedeutet, man liest die Aufgabe und überlegt, welche verschiedenen Klassen man bilden kann. (Bei der Datenbank-Entwicklung ist es ja ähnlich, nur das man dort überlegt, welche Tabellen mit welchen Spalten man braucht.)

Bei der Modellierung von Klassen ist es genauso. Man liest die Aufgabe und überlegt, welche Klassen mit welchen Attributen sinnvoll sind. Die Aufgabe aus dem Unterricht und eine Schülerlösung aus der Stunde habe ich hier verlinkt.

[Aufgabe zur Klassenmodellierung]

[Schülerergebnis während der Unterrichtsstunde]

Nachdem man die Klasse und die Attribute festgelegt hat, muss man im nächsten Schritt überlegen, welche sinnvollen Methoden für die Klassen angegeben werden müssen.
Welche Methoden es geben soll, hängt dann von der konkreten Aufgabenstellung ab, man muss also entscheiden, welche Methode ist beispielsweise für die Klasse "Kunden" sinnvoll.

Diesen Prozess nennt man Modellierung und gehört im Wasserfall-Modelll zu der "Design-Phase". Erst nachdem dieses Modellieren des Klassendiagramms vollständig abgeschlossen ist, kann man anfangen zu programmieren.

Damit Ihr eine Vorstellung davon bekommt, wie man solche Klassen in Java implementiert, habe ich ein Erklärvideo erstellt.

externer Link [Twitch Video: Wie implementiert man eine Klasse bei vorgegebene Klassendiagramm]

[Infoblatt: Implementierung einer Klasse]

 

Aufgabe:

Für die obige Schülerlösung habe ich geeignete Methoden in dem Diagramm ergänzt.:

[Klassendiagramm mit Methoden]

erzeugt ein Java-Projekt und implementiert alle dargestellten Klassen mit den zugehörigen Attributen und Methoden.
Es muss kein Code in den Methoden vorhanden sein (wie im Video gezeigt). Abgabe bitte per Dropbox. Der Link dazu kommt in den nächsten Tagen.

« vorige Seite Seitenanfang nächste Seite »
Seite
Menü
Info
BTR-LMS

Die Login-Daten erhalten Ihr von euren Fachlehrern (m/w/d)
(auf das Logo klicken)


BTR-Website

Die offizielle Website des Berufskolleg Technik Remscheid findet Ihr / Sie unter:

www.btr-rs.de


Aurochs DMS

Ein Dokumentenmanagement speziell für Lehrer*innen findet man hier:

www.aurochs.biz

Seite
Menü
Info

Powered by CMSimple | Template: ge-webdesign.de | Login