java:object_class

Η κλάση 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.
  • public int hashCode(): Επιστρέφει έναν αριθμό (hash) για το συγκεκριμένο αντικείμενο. Ο αριθμός αυτός θα πρέπει να είναι μοναδικός για κάθε αντικείμενο. Κάθε κλήση της συγκεκριμένης μεθόδου σε ένα αντικείμενο πρέπει να επιστρέφει πάντα το ίδιο αποτέλεσμα. Δεν χρειάζεται να επαναορίσετε τη συγκεκριμένη συνάρτηση.
  • public String toString(): Επιστρέφει μία αναπαράσταση σε μορφή String για το αντικείμενο. Η default υλοποίηση της μεθόδου ισοδυναμεί με την παρακάτω έκφραση. Συνιστάται ο επαναορισμός της μεθόδου της συγκεκριμένης κλάσης σε όλες τις κλάσεις που δημιουργείτε. Ο επαναορισμός της συγκεκριμένης μεθόδου μπορεί να χρησιμοποιηθεί για αποσφαλμάτωση των προγραμμάτων σας (debugging).
  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)
java/object_class.txt · Last modified: 2016/03/31 08:43 by doufexi