gleichheit wird nicht erkannt
-
Mit dem Vergleichsoperator prüfst du den Inhalt der jeweiligen Variablen auf ihren reinen Inhalt. Bei primitiven Datentypen (int, float) passiert das ja ganz intuitiv. Wenn du 2 Referenzvariablen mit "==" vergleichst, prüfst du sie nicht auf gleichen Inhalt, sonder prüfst lediglich ob sie die selben Referenzen beeinhalten (sprich: auf das selbe Objekt zeigen).
compi
-
man kann das ganze auch mit compareTo() machen.
gruß devil667
-
@compi
woher weiß ich ob es sich um eine Referenzvariablen handelt oder nicht ?@devil667
Gibt es da einen unterschied zwischen den beiden methoden, ist doch komisch, dass es zwei methoden gibt, die die gleiche sache machen !?
-
Original erstellt von stevg:
**
Gibt es da einen unterschied zwischen den beiden methoden, ist doch komisch, dass es zwei methoden gibt, die die gleiche sache machen !?**Ja. compareTo liefert ein int zurück, welches dir sagt, ob das betreffende Objekt "kleiner", "gleich" oder "größer" ist. Dagegen liefert dir equals nur einen boolschen Wert zurück, der sagt, ob das betreffende Objekt gleich ist. Im Gegensatz zu compareTo gibt es equals aber auch bei Objekten, die das Interface "Comparable" nicht implementieren. Man nutzt für solche Dinge die equals-Methode. compareTo nutzt man nur, wenn einen dei Ordnung interessiert, also z.B. wenn man sortieren will.
-
Original erstellt von stevg:
**
woher weiß ich ob es sich um eine Referenzvariablen handelt oder nicht ?
**Wenn eine Variable keinen elementaren Datentyp beinhaltet, so beinhaltet sie in Java eine Referenz. Elementare Datentypen sind:
- byte
- short
- char
- int
- long
- float
- double
- boolean
-
@Gregor: es geht einfacher zu definieren: sollte ein = null bzw. = new bla verwendet werden, so ist der typ ein referenz-typ, sonst nicht
-
Es geht noch einfacher...primitive Typen werden klein, Referenztypen am Anfang mit einem Großbuchstaben geschrieben
[ Dieser Beitrag wurde am 27.04.2003 um 01:07 Uhr von crass editiert. ]
-
@crass: diese definition geht davon aus, dass Programmierer die Konvention einhalten. und das ist _nicht_ garantiert
-
ich weiß, aber an diese Konvention sollte sich in Java eigentlich jeder halten und 99% tuns wohl auch
-
@crass: ich denke wohl zu c++-strikt
-
Ja. compareTo liefert ein int zurück, welches dir sagt, ob das betreffende Objekt "kleiner", "gleich" oder "größer" ist.
Wie kann man den beim String sagen ob dieser kleiner oder größer, hängt der zurückgelieferte wert von der stellung der buchstaben im alphabet ab ?
-
Ja ... ist wie beim Lexikon ...
-
wird auch zurück gegeben wie gross der unterschied ist oder nur -1, 0 oder +1
-
Der genaue Unterschied wird nicht angegeben.
-
ok danke. ich dachte, dass das irgendwie berechnet wird.