java:object_class
This is an old revision of the document!
Table of Contents
Η κλάση Object
Όλες οι κλάσεις στην Java είναι απόγονοι της κλάσης Object. Για παράδειγμα, η κλάση Integer κληρονομεί την κλάση Νumber που κληρονομεί την κλάση Object.
java.lang.Object | ----| v java.lang.Number | ----| v java.lang.Integer
Λόγω της ύπαρξης της κλάσης Object όλα τα αντικείμενα στην Java κληρονομούν συγκεκριμένες μεθόδους που ορίζονται στην κλάση αυτή. Τις μεθόδους αυτές μπορείτε αν θέλετε να τις επαναορίσετε στις κλάσεις που δημιουργείτε ή να τις αφήσετε ως έχουν. Οι κυριότερες μέθοδοι της κλάσης Object είναι οι εξής:
- public boolean equals(Object obj): Η μέθοδος ελέγχει αν δύο αντικείμενα είναι ίδια. Η μέθοδος ελέγχει εάν το αντικείμενο που την καλεί ταυτίζεται με το όρισμα που λαμβάνει. Μόνο στην περίπτωση που αυτά είναι ταυτόσημα επιστρέφει true, διαφορετικά επιστρέφει false. Εάν δύο διακριτά αντικείμενα έχουν πεδία με ίδιες τιμές η μέθοδος επιστρέφει false.
- public int hashCode(): Επιστρέφει έναν θετικό ακέραιο (hash value) για το συγκεκριμένο αντικείμενο. Ο αριθμός αυτός είναι μοναδικός για κάθε αντικείμενο.
- public String toString(): Επιστρέφει μία αναπαράσταση σε μορφή String για το αντικείμενο. Η default υλοποίηση της μεθόδου ισοδυναμεί με την παρακάτω έκφραση. Συνιστάται ο επαναορισμός της μεθόδου της συγκεκριμένης κλάσης σε όλες τις κλάσεις που δημιουργείτε. Ο επαναορισμός της συγκεκριμένης μεθόδου μπορεί να χρησιμοποιηθεί για την επιστροφή ενός αλφαριθμητικού που περιέχει τις τιμές των πεδίων του εκάστοτε αντικειμένου.
getClass().getName() + '@' + Integer.toHexString(hashCode())
- public final Class<?> getClass(): Επιστρέφει ένα αντικείμενο της κλάσης Class. Η κλάση Class συγκεντρώνει πληροφορίες αναφορικά με τα χαρακτηριστικά της κλάσης του αντικειμένου.
- Οι παρακάτω μέθοδοι συνδέονται με τη λειτουργία των νημάτων (threads)
- public final void notify()
- public final void notifyAll()
- public final void wait()
- public final void wait(long timeout)
- public final void wait(long timeout, int nanos)
Έλεγχος ισότητας μεταξύ δύο αντικειμένων
Ας υποθέσουμε ότι έχουμε δύο αντικείμενα της κλάσης Rectangle η οποία με τη σειρά της διαθέτει ένα πεδίο τύπου Point.
Θέλουμε να συγκρίνουμε τα δύο αυτά αντικείμενα μόνο ως προς την ισότητα. Για να το κάνουμε αυτό έχουμε δύο επιλογές:
- χρήση του τελεστή =: Ο τελεστής = ελέγχει οι δύο μεταβλητές αριστερά και δεξιά του τελεστή δείχνουν στο ίδιο αντικείμενο. Ως εκ τούτου δεν μπορεί να χρησιμοποιηθεί στη συγκεκριμένη περίπτωση.
- χρήση της μεθόδου equals:
Προηγούμενο: Ο τελεστής super | Περιεχόμενα | Επόμενο: Στατικός και Δυναμικός Πολυμορφισμός |
java/object_class.1616395744.txt.gz · Last modified: 2021/03/22 06:49 by gthanos