Βίντεο: Can technology save the indigenous people and their environment? | Michalis Vitos | TEDxThessaloniki 2024
Όταν αρχίσετε να εργάζεστε με αντικείμενα στην Java, διαπιστώνετε ότι μπορείτε να χρησιμοποιήσετε το == και! = για να συγκρίνετε αντικείμενα μεταξύ τους. Για παράδειγμα, ένα κουμπί που βλέπετε στην οθόνη του υπολογιστή είναι ένα αντικείμενο. Μπορείτε να ρωτήσετε αν το πράγμα που μόλις πατήθηκε με το ποντίκι είναι ένα συγκεκριμένο κουμπί στην οθόνη σας. Κάνετε αυτό με τον παροχέα ισότητας της Java.
αν (e. GetSource () == bCopy) {πρόχειρο. setText (το οποίο. getText ());
Το μεγάλο gotcha με το σύστημα σύγκρισης της Java έρχεται όταν συγκρίνετε δύο χορδές. Όταν συγκρίνετε δύο χορδές μεταξύ τους, δεν θέλετε να χρησιμοποιήσετε το διπλό ίσο σημείο. Χρησιμοποιώντας το διπλό ίσο σημείο, θα ρωτούσαμε: "Είναι αυτή η συμβολοσειρά αποθηκευμένη ακριβώς στην ίδια θέση στη μνήμη με αυτή την άλλη συμβολοσειρά; "Συνήθως, αυτό δεν είναι αυτό που θέλετε να ρωτήσετε.
Αντίθετα, συνήθως θέλετε να ρωτήσετε: "Αυτή η συμβολοσειρά έχει τους ίδιους χαρακτήρες σε αυτήν με αυτήν την άλλη συμβολοσειρά; "Για να ρωτήσετε το δεύτερο ερώτημα (η πιο κατάλληλη ερώτηση) ο τύπος String της Java έχει μια μέθοδο που ονομάζεται ισούται με. (Όπως και οτιδήποτε άλλο στο γνωστό σύμπαν, αυτή η μέθοδος ισούται με το API Java, σύντομη για το Interface Programming Interface.)
Η μέθοδος equals συγκρίνει δύο συμβολοσειρές για να δει αν έχουν τους ίδιους χαρακτήρες. Για παράδειγμα, χρησιμοποιώντας τη μέθοδο ισότητας Java, δείτε αυτή την λίστα κωδικών. (Το σχήμα δείχνει την εκτέλεση του προγράμματος στην καταχώριση.)
εισαγάγετε τη στατική java. lang. Σύστημα. *; εισαγωγή java. χρήσιμο. Ερευνητής; δημόσια τάξη CheckPassword {δημόσιο static κενό main (String args []) {out. print ("Ποιος είναι ο κωδικός;"); Πληκτρολόγιο σαρωτή = νέος σαρωτής (σε); Κωδικός πρόσβασης για τον κώδικα = πληκτρολόγιο. Επόμενο(); έξω. println ("Πληκτρολογήσατε >>" + κωδικός + "<<"); έξω. println (); αν (κωδικός == "ξιφίας") {έξω. println ("Η λέξη που πληκτρολογήσατε είναι αποθηκευμένη"); έξω. println ("στην ίδια θέση με την πραγματική")? έξω. println ("κωδικός πρόσβασης, πρέπει να είστε"); έξω. println ("hacker.")?} else {out. println ("Η λέξη που πληκτρολογήσατε δεν είναι"); έξω. println ("αποθηκευμένο στον ίδιο χώρο"). έξω. println ("ο πραγματικός κωδικός πρόσβασης, αλλά αυτό είναι"); έξω. println ("όχι μεγάλη συμφωνία")}} έξω. println (); αν ο κωδικός πρόσβασης ισούται ("ξιφίας")) {out. println ("Η λέξη που πληκτρολογήσατε έχει"); έξω. println ("ίδιοι χαρακτήρες με το πραγματικό")? έξω. println ("κωδικός πρόσβασης, μπορείτε να χρησιμοποιήσετε"); έξω. println ("πολύτιμο σύστημα.")} else {out. println ("Η λέξη που πληκτρολογήσατε δεν"); έξω. println ("έχουν τους ίδιους χαρακτήρες με"); έξω. println ("ο πραγματικός κωδικός πρόσβασης δεν μπορείτε"); έξω. println ("χρησιμοποιήστε το πολύτιμο σύστημα μας")}} πληκτρολόγιο. close ();}}
Στην καταχώρηση, το πληκτρολόγιο κλήσης. επόμενο () αρπάζει οποιαδήποτε λέξη ο χρήστης πληκτρολογεί στο πληκτρολόγιο του υπολογιστή. Ο κώδικας σπρώχνει αυτή τη λέξη στη μεταβλητή που ονομάζεται κωδικός πρόσβασης. Στη συνέχεια, οι δηλώσεις του προγράμματος if χρησιμοποιούν δύο διαφορετικές τεχνικές για να συγκρίνουν τον κωδικό πρόσβασης με το "ξιφίας".
Τα παραδείγματα στο τυπωμένο βιβλίο είναι ως επί το πλείστον κείμενο, αλλά μπορείτε να βρείτε πιο φτηνότερες εκδόσεις των περισσότερων παραδειγμάτων στην ιστοσελίδα Dummies. Αυτές οι πιο εκλεπτυσμένες εκδόσεις έχουν παράθυρα, κουμπιά, πεδία κειμένου και άλλα στοιχεία ενός γραφικού περιβάλλοντος γραφικών (GUI).
Η πιο κατάλληλη από τις δύο τεχνικές χρησιμοποιεί τη μέθοδο ισότητας της Java. Η μέθοδος equals φαίνεται αστεία επειδή όταν την ονομάζετε, βάζετε μια κουκίδα μετά από μία συμβολοσειρά και βάζετε την άλλη συμβολοσειρά σε παρενθέσεις. Αυτός είναι ο τρόπος που πρέπει να το κάνετε.
Στην κλήση της μεθόδου equals της Java, δεν έχει σημασία ποια συμβολοσειρά παίρνει την κουκκίδα και η οποία παίρνει τις παρενθέσεις. Για παράδειγμα, στη λίστα, θα μπορούσατε να γράψετε
αν ("ξιφίας" ισούται με τον κωδικό πρόσβασης)
Η μέθοδος θα λειτουργούσε εξίσου καλά.
Μια κλήση προς τη μέθοδο ισότητας της Java φαίνεται ανισορροπημένη, αλλά δεν είναι. Υπάρχει ένας λόγος πίσω από την εμφανή ανισορροπία μεταξύ της κουκκίδας και των παρενθέσεων. Η ιδέα είναι ότι έχετε δύο αντικείμενα: το αντικείμενο κωδικού πρόσβασης και το αντικείμενο "ξιφίας".
Κάθε ένα από αυτά τα αντικείμενα είναι τύπου String. (Ωστόσο, ο κωδικός πρόσβασης είναι μια μεταβλητή τύπου String, και "ξιφίας" είναι ένα String literal.) Όταν γράφετε τον κωδικό πρόσβασης. ισούται ("ξιφία"), καλείτε μια μέθοδο ίσων που ανήκει στο αντικείμενο κωδικού πρόσβασης. Όταν ονομάζετε αυτή τη μέθοδο, τροφοδοτείτε το "ξιφία" της μεθόδου ως την παράμετρο της μεθόδου (το παιχνίδι προορίζεται).
Κατά τη σύγκριση των συμβολοσειρών μεταξύ τους, χρησιμοποιήστε τη μέθοδο equals - όχι το διπλό ίσο σημείο.