This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revision Both sides next revision | ||
|
java:object_class [2021/03/22 07:31] gthanos |
java:object_class [2021/03/22 07:35] gthanos [Έλεγχος ισότητας μεταξύ δύο αντικειμένων] |
||
|---|---|---|---|
| Line 36: | Line 36: | ||
| Θέλουμε να συγκρίνουμε τα δύο αυτά αντικείμενα μόνο ως προς την ισότητα. Για να το κάνουμε αυτό έχουμε δύο επιλογές: | Θέλουμε να συγκρίνουμε τα δύο αυτά αντικείμενα μόνο ως προς την ισότητα. Για να το κάνουμε αυτό έχουμε δύο επιλογές: | ||
| * **χρήση του τελεστή =**: Ο τελεστής = ελέγχει οι δύο μεταβλητές αριστερά και δεξιά του τελεστή δείχνουν στο ίδιο αντικείμενο. Ως εκ τούτου δεν μπορεί να χρησιμοποιηθεί στη συγκεκριμένη περίπτωση. | * **χρήση του τελεστή =**: Ο τελεστής = ελέγχει οι δύο μεταβλητές αριστερά και δεξιά του τελεστή δείχνουν στο ίδιο αντικείμενο. Ως εκ τούτου δεν μπορεί να χρησιμοποιηθεί στη συγκεκριμένη περίπτωση. | ||
| - | * **χρήση της μεθόδου equals:** Θα πρέπει να επαναορίσουμε τη μέθοδο equals, ώστε όταν συγκρίνονται δύο αντικείμενα που έχουν τα ίδια πεδία η μέθοδος να επιστρέφει true. Εδώ θα πρέπει να σημειώσουμε ότι εφόσον η κλάση περιέχει και ένα πεδίο τύπου Point, μόνο εάν και τα πεδία τύπου Point των δύο αντικειμένων δείχνουν σε διαφορετικά αντικείμενα που έχουν κοινές τιμές τα δύο αντικείμενα τύπου Rectangle θα είναι ίδια. | + | * **χρήση της μεθόδου equals:** Θα πρέπει να επαναορίσουμε τη μέθοδο equals, ώστε όταν συγκρίνονται δύο αντικείμενα που έχουν τα ίδια πεδία η μέθοδος να επιστρέφει true. Εδώ θα πρέπει να σημειώσουμε ότι εφόσον η κλάση περιέχει και ένα πεδίο τύπου Point, μόνο εάν και τα πεδία τύπου Point των δύο αντικειμένων δείχνουν σε διαφορετικά αντικείμενα που έχουν κοινές τιμές τα δύο αντικείμενα τύπου Rectangle θα είναι ίδια. |
| <code java> | <code java> | ||
| Line 69: | Line 69: | ||
| - | Όμως ο επαναορισμός της μεθόδου equals δεν αρκεί ώστε να σηματοδοτήσει την ισότητα μεταξύ δύο αντικείμενων. [[https:// | + | Όμως ο επαναορισμός της μεθόδου equals δεν αρκεί ώστε να σηματοδοτήσει την ισότητα μεταξύ δύο αντικείμενων. [[https:// |
| <code java> | <code java> | ||
| Line 122: | Line 122: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Βάλτε σε σχόλια τις μεθόδους equals και hashCode στις παραπάνω κλάσεις και ελέγξτε τι εκτυπώνει το παραπάνω πρόγραμμα σε αυτή την περίπτωση. | ||
| + | </ | ||
| |Προηγούμενο: | |Προηγούμενο: | ||