1 1.1 Wiederholung: Klassendiagramme in der UML Thorsten Schwandt Lernsituationen Java II Kompetenzorientierte Unterrichtsmaterialien zur Vertiefung der Objektorientierung 1. Auflage, 2014 ISBN: 978-3-7357-6226-9
2 Lernsituationen Java II Impressum ISBN: 978-3-7357-6226-9 Autor: E-Mail: Internet: Thorsten Schwandt mail@lernsituationen.info www.lernsituationen.info 2014: Thorsten Schwandt Herstellung und Verlag: BoD Books on Demand, Norderstedt Dieses Buch und seine Teile sind urheberrechtlich geschützt. Jede Nutzung in anderen als den gesetzlich zugelassenen Fällen bedarf der vorherigen schriftlichen Genehmigung des Autors. Hinweis zu 52a UrhG: Weder das gesamte Werk noch einzelne Teile dürfen ohne die Genehmigung des Verfassers digitalisiert und in einem Netzwerk zur Verfügung gestellt werden. Dies gilt auch für Intranets und Lernplattformen von Schulen und anderen Bildungseinrichtungen. Dieses Werk wurde mit großer Sorgfalt erstellt. Fehler können dennoch nicht ausgeschlossen werden. Der Autor kann für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Wenn nicht explizit an anderer Stelle des Werkes aufgeführt, liegen die Urheberrechte an allen Bildern beim Autor. Sollte es trotz intensiver Recherche nicht gelungen sein, alle weiteren Rechteinhaber der verwendeten Quellen und Abbildungen zu finden, bitten wir um eine kurze Nachricht an den Autor. Bildquellenverzeichnis Seite 4, 5, 11, 12, 13, 18, 19, 26 27, 38, 39, 40, 43, 44, 45, 52 CD Pixabay Public Domain Seite 5, 12, 19, 27, 40, 45 Logo SoftSolution Thorsten Schwandt Seite 5, 12, 27, 40, 45 Heinz Albrinck Benjamin Thorn / pixelio.de Seite 5, 27 Birte Nederkorn Benjamin Thorn / pixelio.de Seite 5, 19, 45 Torben Evertz Konstantin Gastmann / pixelio.de Seite 5 Notebook Konstantin Gastmann / pixelio.de Seite 11, 38 Junge Pixabay Public Domain Seite 11, 38 Zauberer Pixabay Public Domain Seite 11 Krieger Pixabay Public Domain Seite 12, 40 Logo remotec Thorsten Schwandt Seite 12, 40 Nadine Stöppler Konstantin Gastmann / pixelio.de Seite 33 Büste Pixabay Public Domain Seite 39 Mädchen mit Notebook Pixabay Public Domain Seite 40 Clemens Funkel Benjamin Thorn / pixelio.de
1 Modellierung und Implementierung von Assoziationen 3 Inhaltsverzeichnis 1 Modellierung und Implementierung von Assoziationen... 5 1.1 Wiederholung: Klassendiagramme in der UML... 6 1.2 Assoziationen im Klassendiagramm... 7 1.3 Assoziationen in Java Anlegen einer neuen Klasse... 8 1.4 Assoziationen in Java Assoziationen nutzen... 9 1.5 Einen Buchungssatz als Assoziation implementieren... 10 1.6 Übung Rollenspiel (Teil 1)... 11 2 ArrayList anlegen... 12 2.1 Aufbau und Eigenschaften einer ArrayList... 13 2.2 Anlegen einer ArrayList... 14 2.3 Hinzufügen von Elementen zu einer ArrayList... 15 2.4 Objekte einer ArrayList ausgeben... 17 2.5 Übung mymusic (Teil 1)... 18 3 ArrayList bearbeiten... 19 3.1 Ein bestimmtes Objekt in einer ArrayList suchen... 20 3.2 Elemente aus einer ArrayList entfernen... 21 3.3 Sortieren einer ArrayList... 22 3.4 Wichtige Methoden der Klasse ArrayList... 24 3.5 Nutzung der Aktivkonto-ArrayList für Buchungen... 25 3.6 Übung mymusic (Teil 2)... 26 4 Vererbung: Generalisierung/Spezialisierung... 27 4.1 Vererbung allgemein und im Klassendiagramm... 28 4.2 Einrichten der Klassen einer Vererbungsbeziehung... 30 4.3 Überschreiben von Methoden (Polymorphie)... 32 4.4 Die Oberklassenversion einer Methode erweitern... 34 4.5 Das Programm an die neuen Klassen anpassen... 35 4.6 Instanziieren von Objekten aller Klassen... 37 4.7 Übung Rollenspiel (Teil 2)... 38 4.8 Übung Medienverwaltung... 39 5 Combobox... 40 5.1 Comboboxen in GUIs integrieren und mit Werten füllen... 41 5.2 Den ausgewählten Wert einer Comboboxen auslesen... 42 5.3 Übung Briefanrede... 43 5.4 Übung Bearbeitungsmodus an/aus... 44 6 Fehlervermeidung und -behandlung... 45 6.1 Fehlerarten... 46 6.2 Syntaxfehler und Hilfestellungen von NetBeans... 47 6.3 Ursachen und Folgen von Laufzeitfehlern... 48 6.4 Fehlerbehandlung: Exception Handling (try-catch)... 49 6.5 Methoden zur Vermeidung von Eingabefehlern... 50 6.6 Übung Taschenrechner... 52
4 Lernsituationen Java II Einführung Java I: Grundlagen der objektorientierten Modellierung und Programmierung Dieses Werk setzt die im Kapitel 4 des Buches Wirtschaftsinformatik mit Office 2010 Jahrgangsstufe 11 begonnene Unterrichtsreihe zur Java-Programmierung fort. Das im HERDT-Verlag erschienene Buch wird nicht für die Jahrgangsstufe 12 fortgeführt. Mit diesem Werk erhalten alle Nutzer des o. g. Buches die Möglichkeit in der Jahrgangsstufe 12 nahtlos mit Lernsituationen in den bekannten Modellunternehmen an dem begonnenen Software-Projekt weiterzuarbeiten. Titel: Wirtschaftsinformatik mit Office 2010 Jahrgangsstufe 11 Verlag: HERDT-Verlag für Bildungsmedien GmbH, Bodenheim ISBN: 978-3-86249-262-6 Lernsituationen: Der didaktische Ansatz dieses Buches Die Schüler erarbeiten sich die Unterrichtsinhalte anhand praxisnaher, handlungsorientierter Lernsituationen. Alle Situationen spielen in den beiden Modellunternehmen remotec GmbH und/oder SoftSolution GmbH. Die Lernsituationen ermöglichen aufgrund ihrer Offenheit oftmals individuelle Lösungs- und Erweiterungsmöglichkeiten. Jedes Kapitel dieses Buches beginnt mit einer solchen Lernsituation. Zu diesen Lernsituationen gibt es keinerlei Arbeitsaufträge. Diese sollten im Rahmen einer Situationsanalyse gemeinsam mit den Schülern erarbeitet werden. Für eine solche Situationsanalyse eignet sich z. B. die folgende Vorgehensweise. Kontext: Im ersten Schritt sollte der Inhalt von den Schülern zusammengefasst und gemeinsam festgehalten werden (z. B. an der Tafel oder in einem Word-Dokument). Perspektive: Als nächstes ist die Frage zu klären, wer in der gegebenen Situation zu handeln hat. Prozess: Abschließend sollte von den Schülern ein konkreter Arbeitsauftrag (unter Berücksichtigung der gewählten Perspektive) formuliert werden. Planung der Arbeitsschritte (optional): Um den Schülern den Einstieg in die Erarbeitungsphase zu vereinfachen, ist es oftmals sinnvoll eine Übersicht der zur Situationsbewältigung notwendigen Arbeitsschritte anzufertigen. Zusatzmaterialien Zu diesem Buch ist eine Lehrermedien-CD erhältlich, auf der sich diverse Zusatzmaterialien für die in diesem Werk befindlichen Lerninhalte befinden. Auf der Lehrermedien-CD finden Sie u. a.: alle in diesem Buch eingesetzten Programme (Freeware: JDK, NetBeans, Dia) sämtliche NetBeans-Projekte (Vorlagen/Lösungen) sowie Lösungen aller Übungen mögliche Ergebnisse der Situationsanalysen (inklusive Arbeitsaufträge) Dieses Symbol weist im Buch auf Materialien auf der Lehrermedien-CD hin. zusätzliche Informationsmaterialien (z. B. UML-Diagramme und Veranschaulichung von Programmabläufen in PowerPoint-Präsentationen etc.) Sie können die Lehrermedien-CD über folgende Internetseite beziehen: www.lernsituationen.info
4 Vererbung: Generalisierung/Spezialisierung 27 4 Vererbung: Generalisierung/Spezialisierung Doppelter, dreifacher, vierfacher Quellcode Torben Evertz, der Anwendungsentwickler der SoftSolution GmbH, hat die neueste Version der Buchhaltungssoftware der remotec GmbH fertig gestellt und dem Projektteam der SoftSolution GmbH vorgestellt. Der Projektleiter Herr Albrinck ist sehr zufrieden. Nachdem er wiederum den aktuellen Zwischenstand bei der remotec GmbH präsentiert hat, ruft er das Projektteam in sein Büro. Heinz Albrinck: Hallo Frau Nederkorn, hallo Herr Evertz! Unsere Auftraggeber waren begeistert von dem Produkt; vor allem, dass man jetzt schon komfortabel und fehlerfrei auf allen Konten buchen kann, kam sehr gut an. Nun sollen wir die Passivkonten einpflegen Heinz Albrinck Projektleiter SoftSolution GmbH Torben Evertz: Heinz Albrinck: Birte Nederkorn: Torben Evertz: Heinz Albrinck: Was für Eigenschaften haben denn diese Konten? Genau wie die Aktivkonten verfügen Sie über einen Anfangsbestand sowie einen Saldo und können im Soll und im Haben bebucht werden. Nur dass der Anfangsbestand im Haben und der Saldo im Soll sind. Oh, dann haben wir ja jede Menge doppelten Quellcode! Und dann gab s doch noch mehr Kontenarten, oder? Richtig. Nach den Bestandskonten müssen wir dann noch Klassen für die Erfolgskonten, also Aufwands- und Ertragskonten einrichten. Die haben allerdings keine Anfangsbestände Birte Nederkorn: Dann wird s ja noch chaotischer! Birte Nederkorn Systemanalyse/Systemarchitektur SoftSolution GmbH Zusatzinformationen: 2_04_Vererbung_Klassendiagramm_vereinfacht.png 2_04_Vererbung_Klassendiagramm_komplett.png Vorlage: remotec_2_03_arraylistbearbeiten Lösung: remotec_2_04_vererbung
28 Lernsituationen Java II 4.1 Vererbung allgemein und im Klassendiagramm Das Prinzip der Vererbung Bei der Vererbung werden Codebestandteile, die in mehreren Klassen auftreten, in eine weitere Klasse, die so genannte Oberklasse (auch Superklasse genannt), verlagert. Die Oberklasse vererbt diesen allgemeinen Quellcode (Attribute und Methoden) an alle Unterklassen, d. h. diese Attribute und Methoden stehen auch in den Unterklassen zur Verfügung. Eine Unterklasse kann eigene Attribute und/oder Methoden neu hinzufügen und Methoden erweitern oder komplett überschreiben, die sie von der Oberklasse erbt. Der Vorgang, aus vorhandenen Klassen Gemeinsamkeiten zu isolieren und in einer Oberklasse zusammenzufassen, wird als Generalisierung bezeichnet. Der Vorgang, dass eine Klasse alle Merkmale einer Oberklasse besitzt und darüber hinaus noch andere hinzufügt, wird als Spezialisierung bezeichnet. Eine Vererbungsbeziehung in der Unified Modeling Language (UML) Im Klassendiagramm der UML wird eine Vererbungsbeziehung zwischen Ober- und Unterklassen durch einen Pfeil dargestellt, der von der Unter- zur Oberklasse zeigt. Von der Oberklasse geerbte Attribute und Methoden werden in der Unterklasse nicht wiederholt. Die nebenstehend dargestellte Abbildung zeigt, dass die Unterklassen Sparkonto und Girokonto das Attribut kontonr sowie die Methode einzahlen() von der Oberklasse Konto erben und diese durch eigene Attribute und Methoden erweitern. Oberklasse Unterklassen Bei einer Vererbung wird auch von einer ist ein -Beziehung gesprochen, weil jedes Objekt der Unterklasse ein Objekt der Oberklasse ist (Beispiel: Ein Girokonto ist ein Konto. ). Diese Ist-ein -Beziehung funktioniert jedoch nur in eine Richtung (Beispiel: Ein Girokonto ist ein Konto; ein Konto ist jedoch nicht zwingend ein Girokonto. )!
30 Lernsituationen Java II 4.2 Einrichten der Klassen einer Vererbungsbeziehung Eine (abstrakte) Oberklasse anlegen Die Oberklasse einer Vererbungsbeziehung kann z. B. anhand eines zuvor erstellten Klassendiagramms programmiert werden. Abstrakte Oberklasse Unterklassen Oftmals werden von der Oberklasse keine eigenen Objekte erzeugt (in der Kontenverwaltung soll z. B. immer ein Sparkonto oder ein Girokonto eingerichtet werden; Objekte der Oberklasse Konto werden hingegen niemals instanziiert). In einem solchen Fall spricht man von einer abstrakten Klasse (im Gegensatz zu konkreten Klassen); dies ist im Klassendiagramm der UML an dem kursiv gedruckten Klassennamen zu erkennen und wird im Java-Quellcode durch das Schlüsselwort abstract in der Klassendefinition umgesetzt. Oberklasse Konto.java (Ausschnitt) public abstract class Konto { protected Bankkunde kontoinhaber; protected double saldo; private long kontonummer; public String einzahlen() { ( ) } public String auszahlen() { ( ) } public abstract String zinszahlung(); } ( )
38 Lernsituationen Java II 4.7 Übung Rollenspiel (Teil 2) Erik Dominski arbeitet seit einiger Zeit an einem eigenen Rollenspiel, welches er mit der Programmiersprache Java erstellt. Beim Testen seines Programms ist ihm aufgefallen, dass die Spezialfähigkeit des Zauberers das Zaubern fehlt. Er möchte diese nun nachträglich einbauen. Nur Zauberer sollen über die zusätzliche Eigenschaft Zauberkraft verfügen. Sein Test-Objekt Mizantrir soll eine Zauberkraft in Höhe von 100,0 besitzen. Zunächst erweitert er sein bisheriges Klassendiagramm. Dann überträgt er das überarbeitete Modell in sein NetBeans-Projekt und prüft das Programm mit Hilfe der Test-GUI. Vorlagen: 04_Übung_Rollenspiel_00_Vorlage.dia rollenspiel_02_loesungmitzusatzaufgabe Lösungen: 04_Übung_Rollenspiel_01_Lösung.dia rollenspiel_03_loesungmitzusatzaufgabeundvererbung