Video: 05 Klassen und Objekte V - Vergleich mit equals-Methode 2024
Wenn Sie mit Objekten in Java arbeiten, stellen Sie fest, dass Sie == und verwenden können! = Objekte miteinander vergleichen. Zum Beispiel ist eine Schaltfläche, die Sie auf dem Computerbildschirm sehen, ein Objekt. Sie können fragen, ob das, was nur mit der Maus angeklickt wurde, eine bestimmte Schaltfläche auf Ihrem Bildschirm ist. Sie tun dies mit dem Gleichheitsoperator von Java.
if (e. GetSource () == bCopy) {Zwischenablage. setText (was. getText ());
Der große Fall mit dem Java-Vergleichsschema kommt, wenn Sie zwei Strings vergleichen. Wenn Sie zwei Strings miteinander vergleichen, wollen Sie das doppelte Gleichheitszeichen nicht verwenden. Die Verwendung des doppelten Gleichheitszeichens würde fragen: "Ist diese Zeichenkette an genau derselben Stelle im Speicher gespeichert wie diese andere Zeichenkette? "Normalerweise ist das nicht das, was du fragen willst.
Stattdessen möchten Sie normalerweise fragen: "Hat diese Zeichenkette die gleichen Zeichen wie diese andere Zeichenkette? Um die zweite Frage zu stellen (die passendere Frage) hat der String-Typ von Java eine Methode mit dem Namen gleich. (Wie alle anderen Elemente im bekannten Universum ist auch diese Methode in der Java-API definiert, kurz für Application Programming Interface.)
Die equals-Methode vergleicht zwei Strings, um festzustellen, ob sie dieselben Zeichen enthalten. Ein Beispiel mit Java's equals-Methode finden Sie in dieser Codeauflistung. (Die Abbildung zeigt einen Lauf des Programms in der Auflistung.)
importiert statisches Java. lang. System. *; Java importieren. Nutz. Scanner; Öffentliche Klasse CheckPassword {public static void main (Zeichenfolge args []) {out. print ("Wie lautet das Passwort?"); Scannertastatur = neuer Scanner (in); String Passwort = Tastatur. Nächster(); aus. println ("Sie haben >> eingegeben" + Passwort + "<<"); aus. println (); if (Passwort == "Schwertfisch") {Out. println ("Das eingegebene Wort wird gespeichert"); aus. println ("an der gleichen Stelle wie die reale"); aus. println ("Passwort. Sie müssen ein" sein); aus. println ("hacker.");} sonst {aus. println ("Das eingegebene Wort ist nicht"); aus. println ("an der gleichen Stelle wie" gespeichert); aus. println ("das echte Passwort, aber das ist"); aus. println ("keine große Sache.");} out. println (); if (password. equals ("Schwertfisch")) {out. println ("Das eingegebene Wort hat den Wert"); aus. println ("gleiche Zeichen wie der echte"); aus. println ("Passwort. Sie können unser verwenden"); aus. println ("wertvolles System");} else {out. println ("Das von Ihnen eingegebene Wort nicht"); aus. println ("haben die gleichen Zeichen wie"); aus. println ("das echte Passwort. Sie können nicht"); aus. println ("benutze unser wertvolles System.");} Tastatur. close ();}}
In der Auflistung die Anruftastatur. next () liest das vom Benutzer eingegebene Wort auf der Computertastatur. Der Code schiebt dieses Wort in die Variable Passwort. Dann verwenden die if-Anweisungen des Programms zwei verschiedene Techniken, um das Passwort mit "Schwertfisch" zu vergleichen.
Die Beispiele im gedruckten Buch sind größtenteils textbasiert, aber die meisten Beispiele finden Sie auf der Dummies-Website. Diese schickeren Versionen haben Fenster, Knöpfe, Textfelder und andere Elemente einer typischen graphischen Benutzerschnittstelle (GUI).
Die geeignetere der beiden Techniken verwendet die Java-Methode equals. Die equals-Methode sieht komisch aus, weil Sie beim Aufrufen einen Punkt nach einem String setzen und den anderen String in Klammern setzen. Aber so muss man es machen.
Beim Aufrufen der Java-Methode equals spielt es keine Rolle, welche Zeichenfolge den Punkt erhält und welche die Klammern erhält. Zum Beispiel, in der Auflistung, hätten Sie
schreiben können, wenn ("Schwertfisch". Gleich (Passwort))
Die Methode würde genauso gut funktionieren.
Ein Aufruf von Java's equals-Methode sieht unausgeglichen aus, ist es aber nicht. Es gibt einen Grund für das offensichtliche Ungleichgewicht zwischen dem Punkt und den Klammern. Die Idee ist, dass Sie zwei Objekte haben: das Passwort-Objekt und das "Schwertfisch" -Objekt.
Jedes dieser beiden Objekte ist vom Typ String. (Kennwort ist jedoch eine Variable vom Typ String, und "swordfish" ist ein String-Literal.) Wenn Sie ein Kennwort schreiben. equals ("swordfish"), rufen Sie eine equals-Methode auf, die zum Kennwortobjekt gehört. Wenn Sie diese Methode aufrufen, füttern Sie "Schwertfisch" als Methodenparameter (Wortspiel beabsichtigt) an die Methode.
Wenn Sie Strings miteinander vergleichen, verwenden Sie die equals-Methode - nicht das doppelte Gleichheitszeichen.