Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich...

27
Tutorium PG2 04.06.2013

Transcript of Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich...

Page 1: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Tutorium PG204.06.2013

Page 2: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Verbesserung Blatt 5

Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben. Des Weiteren soll auch ein „leeres“ Fahrrad erstellt und die Eigenschaften zu einem späteren Zeitpunkt festgelegt werden können.

Page 3: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Verbesserung Blatt 5

Konstruktor in jeder Klasse notwendigABER: Unbedingt Konstruktor der

Basisklasse verwenden!

Page 4: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Unübersichtlicher Code ohne super Konstruktor

Page 5: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Übersichtlicher und vermeiden von Redunanz

Page 6: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Scanner vermeiden wenn nicht gefordert

Implementieren Sie die Klassen und erstellen Sie ein Testprogramm mit dem Sie z.B. 10 Fahrräder in einer einzigen Liste anlegen und anschließend in der Konsole ausgeben

Page 7: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Verbesserung Blatt 6

Page 8: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Klassendiagramm

Page 9: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

compareTo – 6.2

Page 10: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Comparable<T>

Page 11: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Comparable<T> - Generics

Comparable ist generisch für alle Typen verwendbar

Für solche Zwecke: Generics-Konzeptviele Interfaces & Klassen sind generischZ.B. auch ArrayList<T>

Page 12: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Klasse ohne generischen Typ

Page 13: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

CompareTo braucht OBJECT!

Page 14: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Klasse mit generischen Typ

Page 15: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Fazit:◦Generisches Konzept spart Programmierarbeit◦Für späteren Beruf im Kopf behalten

Page 16: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

6.4 – Zweites Sortierkriterium

Page 17: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

compareTo - Alt

Page 18: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

compareTo - Neu

Page 19: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Zweites Sortierkriterium

Fazit:◦Dort wo beide Objekte gleich sind◦ nächstes Sortierkriterium anwenden◦Wenn this.preis == other.preis

könnte man z.B. Bezeichnung vergleichen etc.

Page 20: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

6.5 Suche nach Namen

Page 21: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

6.6

Page 22: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

6.6 Beispiel mit intern()

Page 23: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Benutzen der Liste

Problem:◦Regal soll ein Handy liefern, wie auf

Eigenschaften zugreifen?

Page 24: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Benutzen der Liste – Die Klassen

Page 25: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

KindZweiAttribut unbekannt?

Page 26: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

In „vaterListe“ können beliebige Klassen bzw. Instancen abgelegt werden

Sie müssen lediglich von „Vater“ erben

Java kann gar nicht entscheiden, welche konkrete Klasse der Entwickler will

Cast notwendig

Page 27: Tutorium PG2 04.06.2013. Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.

Cast notwendig