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
  1. 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€
  2. 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
  3. 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.

Lösung