JAVA Punkt Koordinaten
Ich habe hier folgendes Problem:
Ich möchte ein Spielfeld, das aus Punkten besteht, ausgeben. Soweit funktioniert das auch. Sobald die Schleifen in der Klasse PoinField die Koordinaten x=5 y=5 ergeben, sollte dieses Zeichen "#", also Door, ausgegeben werden. Das funktionier aber nicht.
Als ich es mit - java.awt.Point - probiert habe, hat alles funktioniert.
Ich möchte es aber "maunuell" auch programmieren und hoffe, dass mir jemand helfen kann. Der Code entspricht nicht gerade den Code Conventions...usw., aber für Testzwecke reichts. Darum bitte ich um etwas nachsicht.



1 Antwort
Du kannst ja nicht einfach so zwei völlig verschiedene Objekte vergleichen. Du müsstest bei beiden die equals-Methode überschreiben und jeweils aufeinander abstimmen. Einfacher aber wäre es, die Koordinaten zu vergleichen und nicht die Objekte.
Es sind eben immernoch unterschiedliche Objekte. Ein Apfel ist ja auch keine Birne, nur weil man beide essen kann.
Wenn du die Koordinaten vergleichst, sind das primitive Datentypen, keine Objekte.
Vielen Dank! Mit den Koordinaten selber, über eine Getter-Methode, funktioniert es.
Eines verstehe noch nicht ganz:
Warum kann ich die beiden Objekte nicht direkt miteinander vergleichen? Sie beinhalten doch beide die selben Attribute.
Wenn ich diese beiden vergleiche, dann vergleiche ich doch auch unterschiedliche Objekte oder? Mit dieser Schreibweise funktioniert es aber:
java.awt.Point p = new java.awt.Point(x,y); java.awt.Point door = new java.awt.Point(5, 5);
if(door.equals(p)){ System.out.print("#"); }