User Tools

Site Tools


java:super_operator

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:super_operator [2021/03/05 19:07] gthanosjava:super_operator [2022/03/11 05:25] (current) – [Πρόσβαση στα πεδία της γονικής κλάσης] gthanos
Line 124: Line 124:
   }   }
      
-  public int getPerimeter() { +  public int area() { 
-    return 2*(width+height);+    return width*height;
   }   }
 } }
 </code> </code>
  
-Παρατηρήστε ότι η μέθοδος toString για την κλάση Rectangle χρησιμοποιεί τη μέθοδο toString της κλάσης Point και της γονικής της κλάσης BasicRectangle (βλέπε ''super.toString()''). Ο λόγος που σε αυτό το σημείο είναι απαραίτητη η χρήση του τελεστή super, είναι ότι εάν δεν βάλουμε τη λέξη super πριν από την κλήση της toString() η συνάρτηση δεν θα καλέσει τη συνάρτηση toString της γονικής κλάσης, αλλά τον εαυτό της. Σε αυτή την περίπτωση, η αναδρομική κλήση είναι ατέρμονη, μοιραία θα οδηγήσει σε υπέρβαση της διαθέσιμης στοίβας εκτέλεσης του προγράμματος, με συνέπεια τον τερματισμό του.+Παρατηρήστε ότι η μέθοδος toString για την κλάση Rectangle χρησιμοποιεί τη μέθοδο toString της κλάσης ''Point'' και της γονικής της κλάσης ''BasicRectangle'' (βλέπε ''super.toString()''). Ο λόγος που σε αυτό το σημείο είναι απαραίτητη η χρήση του τελεστή **super**, είναι ότι εάν δεν βάλουμε τη λέξη **super.** κατά την κλήση της toString()η συνάρτηση δεν θα καλέσει τη συνάρτηση toString της γονικής κλάσης, αλλά τον εαυτό της. Σε αυτή την περίπτωση, η αναδρομική κλήση είναι ατέρμονη, μοιραία θα οδηγήσει σε υπέρβαση της διαθέσιμης στοίβας εκτέλεσης του προγράμματος, με συνέπεια τον τερματισμό του.
  
 ==== Πρόσβαση στα πεδία της γονικής κλάσης ==== ==== Πρόσβαση στα πεδία της γονικής κλάσης ====
  
-Επιπλέον, στην κλάση Rectangle, ορίζουμε παραπάνω τη μέθοδο getPerimeter. H μέθοδος μπορεί να γραφεί με τις εξής δύο (2) ισοδύναμες παραλλαγές. +Επιπλέον, στην κλάση Rectangle, ορίσαμε παραπάνω τη μέθοδο area. H μέθοδος μπορεί να γραφεί με τις εξής τρεις (3) ισοδύναμες παραλλαγές. 
-<code>  +<code java>  
-  public int getPerimeter() { +  public int area() { 
-    return 2*(this.width+this.height);+    return width * height;
   }   }
 </code> </code>
-<code>  +<code java>  
-  public int getPerimeter() { +  public int area() { 
-    return 2*(super.width+super.height);+    return this.width this.height; 
 +  } 
 +</code> 
 +<code java>  
 +  public int area() { 
 +    return super.width super.height;
   }   }
 </code> </code>
java/super_operator.1614971222.txt.gz · Last modified: 2021/03/05 19:07 by gthanos