User Tools

Site Tools


java:object_class

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

java:object_class [2021/03/22 06:49]
gthanos
java:object_class [2021/03/22 07:36]
Line 1: Line 1:
-====== Η κλάση Object ====== 
  
-Όλες οι κλάσεις στην Java είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html|Object]]. Για παράδειγμα, η κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html|Integer]] κληρονομεί την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html|Νumber]] που κληρονομεί την κλάση //Object// 
- 
-<code> 
-     java.lang.Object 
-           | 
-           ----| 
-               v 
-        java.lang.Number 
-               | 
-               ----| 
-                   v 
-            java.lang.Integer  
-</code> 
- 
-Λόγω της ύπαρξης της κλάσης //Object// όλα τα αντικείμενα στην Java κληρονομούν συγκεκριμένες μεθόδους που ορίζονται στην κλάση αυτή. Τις μεθόδους αυτές μπορείτε αν θέλετε να τις επαναορίσετε στις κλάσεις που δημιουργείτε ή να τις αφήσετε ως έχουν. Οι κυριότερες μέθοδοι της κλάσης //Object// είναι οι εξής: 
-  * **public boolean equals(Object obj):** Η μέθοδος ελέγχει αν δύο αντικείμενα είναι ίδια. Η μέθοδος ελέγχει εάν το αντικείμενο που την καλεί ταυτίζεται με το όρισμα που λαμβάνει. Μόνο στην περίπτωση που αυτά είναι ταυτόσημα επιστρέφει **true**, διαφορετικά επιστρέφει **false**. Εάν δύο διακριτά αντικείμενα έχουν πεδία με ίδιες τιμές η μέθοδος επιστρέφει **false**. 
-  * **public int hashCode():** Επιστρέφει έναν θετικό ακέραιο (hash value) για το συγκεκριμένο αντικείμενο. Ο αριθμός αυτός είναι μοναδικός για κάθε αντικείμενο.  
-  * **[[[[:java:toString|public String toString()]]:** Επιστρέφει μία αναπαράσταση σε μορφή [[http://docs.oracle.com/javase/7/docs/api/java/lang/String.html|String]] για το αντικείμενο. Η //default// υλοποίηση της μεθόδου ισοδυναμεί με την παρακάτω έκφραση. Συνιστάται ο επαναορισμός της μεθόδου της συγκεκριμένης κλάσης σε όλες τις κλάσεις που δημιουργείτε. Ο επαναορισμός της συγκεκριμένης μεθόδου μπορεί να χρησιμοποιηθεί για την επιστροφή ενός αλφαριθμητικού που περιέχει τις τιμές των πεδίων του εκάστοτε αντικειμένου. 
-<code java> 
-  getClass().getName() + '@' + Integer.toHexString(hashCode()) 
-</code> 
-  * **public final Class<?> getClass():** Επιστρέφει ένα αντικείμενο της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html|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)** 
- 
-===== Έλεγχος ισότητας μεταξύ δύο αντικειμένων ===== 
- 
-Ας υποθέσουμε ότι έχουμε δύο αντικείμενα της κλάσης [[https://courses.e-ce.uth.gr/ECE326/doku.php?do=export_code&id=java:inheritance&codeblock=2|Rectangle]] η οποία με τη σειρά της διαθέτει ένα πεδίο τύπου [[https://courses.e-ce.uth.gr/ECE326/doku.php?do=export_code&id=java:inheritance&codeblock=1|Point]]. 
- 
-Θέλουμε να συγκρίνουμε τα δύο αυτά αντικείμενα μόνο ως προς την ισότητα. Για να το κάνουμε αυτό έχουμε δύο επιλογές: 
-  * **χρήση του τελεστή =**: Ο τελεστής = ελέγχει οι δύο μεταβλητές αριστερά και δεξιά του τελεστή δείχνουν στο ίδιο αντικείμενο. Ως εκ τούτου δεν μπορεί να χρησιμοποιηθεί στη συγκεκριμένη περίπτωση. 
-  * **χρήση της μεθόδου equals:**  
- 
- 
-|Προηγούμενο: [[ :java:super_operator | Ο τελεστής super ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[ :java:polymorphism | Στατικός και Δυναμικός Πολυμορφισμός ]]| 
java/object_class.txt · Last modified: 2021/03/22 07:36 (external edit)