Artikel
Vorbereitung
Falls Sie die erste Aufgabe bearbeitet haben, arbeiten Sie einfach an Ihrem Projekt weiter. Ansonsten lesen Sie bitte in der ersten Aufgabe die Anleitung zum Projektimport sowie die weiteren Hinweise zum Hochladen in das Ilias System.
Beschreibung
Implementierung einer Klasse zur Darstellung von Artikeln. Das
Projektskelett enthält dazu eine leere Klasse
de.hdm_stuttgart.mi.sd1.aufgabe2.Artikel
als Ausgangspunkt für Ihre Implementierung.
Aufgaben
-
Für einen Artikel sollen dessen Bezeichnung, eine Artikelnummer sowie der Preis in Euro-Cent (25,34€ sind beispielsweise 2534 Cent) angegeben werden. Erweitern Sie die Klasse so, dass z.B. der folgende Code das dargestellte Ergebnis liefert:
Code Gewünschte Ausgabe final Artikel a = new Artikel("Fahrrad", 3321, 23050); System.out.println(a);
Fahrrad, Artikelnummer 3321 zu 230,50€
-
Zwei Instanzen von Artikel sollen genau dann gleich sein, wenn ihre Artikelnummern übereinstimmen. Bezeichnung und Preis sollen hingegen in Bezug auf die Wertgleichheit zweier Artikel irrelevant sein:
Code Gewünschte Ausgabe final Artikel a = new Artikel("Ball", 9132, 4450), b = new Artikel("Fußball", 9132, 4350), c = new Artikel("Fahrrad", 3321, 23050); System.out.println("Ball / Fußball: " + a.equals(b)); System.out.println("Ball / Fahrrad: " + a.equals(c));
Ball / Fußball: true Ball / Fahrrad: false
-
Implementieren Sie eine kompatible
hashCode()
Methode.Hinweis: Die Unit Tests prüfen neben der formalen Korrektheit auch die Sinnhaftigkeit der Implementierung: Eine Hash-Funktion sollte für verschiedene Objekte »meistens« unterschiedliche Werte zurückliefern.
Tipp
Beachten Sie die Unit Tests in
de.hdm_stuttgart.mi.sd1.test.aufgabe2.Test_Artikel
.
Hochladen Ihrer Lösung in das Klausursystem
Laden Sie die Lösung dieser Aufgabe als gemeinsamen Projekt Export mit der ersten Aufgabe „Klassenmethoden“ gemäß den dortigen Hinweisen hoch. Falls Sie die erste Aufgabe ebenfalls bearbeitet haben, enthält Ihr Upload die Lösungen zu beiden Aufgaben.
Tragen Sie im Freitextfeld weiter unten genau einen der beiden Texte ein:
-
Ich habe die aktuelle Aufgabe bearbeitet und erhoffe dafür Punkte.
-
Ich habe die aktuelle Aufgabe nicht bearbeitet.