faecher:informatik:oberstufe:java:aoc:aco2023:day7:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:aoc:aco2023:day7:start [07.12.2023 19:30] – [Variante 2: Objekte] Frank Schiebelfaecher:informatik:oberstufe:java:aoc:aco2023:day7:start [07.12.2023 19:43] (aktuell) – [Variante 2: Objekte] Frank Schiebel
Zeile 268: Zeile 268:
 ====== Variante 2: Objekte ====== ====== Variante 2: Objekte ======
  
-Variante zwei wider mit Objekten:+Variante zwei wieder mit Objekten: 
 + 
 +{{ :faecher:informatik:oberstufe:java:aoc:aco2023:day7:2023-12-07_20-31.png?nolink&600 |}} 
 + 
 +Wie bei den Sortieralgorithmen  [[faecher:informatik:oberstufe:algorithmen:sorting:problemstellung:start|hier]] erläutert, kann man bei Java-Klassen das "Comparable"-Interface implementieren, damit ist es möglich, in der Methode ''compareTo'' eigene Regeln festzulegen, nach denen die Objekte dieser Klasse sortiert werden sollen. Genau das benötigen wir hier: 
 + 
 +  * Wir erzeugen für jede Zeile in der Eingabe ein ''Hand''-Objekt, für den wir den Typ bestimmen und in einem Attribut ablegen. 
 +  * Dann wollen wir die Objekte sortieren - allerdings reicht der Vergleich der Typen nicht aus, weil man bei zwei "Hands" desselben Typs die einzelnen Karten vergleichen soll. 
 +  * Also implementieren wir in der Klasse Hand die Methode ''compareTo'', die genau das macht. 
 + 
 +Die Lösung für Teil 1 und Teil 2 findet sich im selben Code, ich habe versucht das verständlich zu kommentieren. Wenn du nicht viel Programmiererfahrung hast, musst du wahrscheinlich auch an anderer Stelle noch nachlesen: 
 + 
 +  * Teil 1: [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/commit/a897fdacc8c6ad31785a9eb3c7bb682192a925c9/Hand.java|Hand.java]], [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/commit/a897fdacc8c6ad31785a9eb3c7bb682192a925c9/day7.java|day7.java]] 
 +  * Teil 1&2: [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/branch/main/Hand.java|Hand.java]]  [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/branch/main/day7.java|day7.java]]
  
  
 </pane> </pane>
 </tabs> </tabs>
  • faecher/informatik/oberstufe/java/aoc/aco2023/day7/start.1701977448.txt.gz
  • Zuletzt geändert: 07.12.2023 19:30
  • von Frank Schiebel