User Tools

Site Tools


java:inheritance

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:inheritance [2021/03/05 15:31]
gthanos [Κληρονομικότητα]
java:inheritance [2021/03/15 19:24]
gthanos
Line 10: Line 10:
  
 <code java BasicRectangle.java> <code java BasicRectangle.java>
-class BasicRectangle {+public class BasicRectangle {
          
   int width;   int width;
   int height;   int height;
    
-  public Rectangle(int initWidth, int initHeight) {+  public BasicRectangle(int initWidth, int initHeight) {
     width = initWidth;     width = initWidth;
     height = initHeight;     height = initHeight;
   }   }
  
-  void setWidth(int newWidth ) {+  public void setWidth(int newWidth ) {
     width = newWidth;     width = newWidth;
   }   }
          
-  void setHeight(int newHeight ) {+  public void setHeight(int newHeight ) {
     height = newHeight;     height = newHeight;
   }   }
      
-  int getWidth() {+  public int getWidth() {
     return width;     return width;
   }   }
          
-  int getHeight() {+  public int getHeight() {
     return height;     return height;
   }   }
Line 39: Line 39:
     return width * height;     return width * height;
   }   }
 +   
 +  public String toString() { 
 +    return "width: "+width+", height: "+height; 
 +  }
 } }
 </code> </code>
Line 67: Line 70:
   void setY(int yPos) {   void setY(int yPos) {
     y = yPos;     y = yPos;
 +  }
 +  
 +  public String toString() {
 +    return "("+x+","+y+")";
   }   }
 } }
Line 72: Line 79:
  
 <code java Rectangle.java> <code java Rectangle.java>
-class Rectangle extends BasicRectangle{+public class Rectangle extends BasicRectangle {
          
   Point origin;   Point origin;
Line 86: Line 93:
   }   }
          
-  void setOrigin(Point newOrigin) {+  public void setOrigin(Point newOrigin) {
     origin = newOrigin;     origin = newOrigin;
   }   }
      
-  Point getOrigin() {+  public Point getOrigin() {
     return origin;     return origin;
   }   }
        
   // Move rectangle origin by dx,dy   // Move rectangle origin by dx,dy
-  void moveOrigin(int dx, int dy) {+  public void moveOrigin(int dx, int dy) {
     origin.setX( origin.getX() + dx );     origin.setX( origin.getX() + dx );
     origin.setY( origin.getY() + dy );     origin.setY( origin.getY() + dy );
 +  }
 +  
 +  public String toString() {
 +    String str = origin.toString() + " ";
 +    str = str + toString();
 +    return str;
   }   }
 } }
Line 107: Line 120:
  
   * Η κλάση //BasicRectangle// έχει τα πεδία //width, height//, ενώ η κλάση //Rectangle// διαθέτει τα πεδία αυτά και επιπλέον το πεδίο //origin//.   * Η κλάση //BasicRectangle// έχει τα πεδία //width, height//, ενώ η κλάση //Rectangle// διαθέτει τα πεδία αυτά και επιπλέον το πεδίο //origin//.
-  * Τα πεδία της κλάσης //Bicycle// είναι private. H πρόσβαση στα πεδία αυτά μπορεί να γίνει μόνο μέσω των public μεθόδων που διαθέτει η κλάση και έχοντας πρόσβαση απευθείας πάνω στα συγκεκριμένα πεδία. 
   * Βασικό χαρακτηριστικό της κληρονομικότητας είναι ότι η κληρονομούμενη κλάση έχει όλα τα  χαρακτηριστικά της γονικής κλάσης. Υπό αυτή την έννοια, τα αντικείμενα της κλάσης //Rectangle// είναι και του τύπου //BasicRectangle//.   * Βασικό χαρακτηριστικό της κληρονομικότητας είναι ότι η κληρονομούμενη κλάση έχει όλα τα  χαρακτηριστικά της γονικής κλάσης. Υπό αυτή την έννοια, τα αντικείμενα της κλάσης //Rectangle// είναι και του τύπου //BasicRectangle//.
 +  * Παρατηρήστε τη δεσμευμένη λέξη //super// ως πρώτη εντολή του κάθε κατασκευαστή. Μέσω της κλήσης //super// καλείται ο κατασκευαστής της γονικής κλάσης.
 </WRAP> </WRAP>
 ===== Προσβασιμότητα των κληρονομούμενων πεδίων ===== ===== Προσβασιμότητα των κληρονομούμενων πεδίων =====
java/inheritance.txt · Last modified: 2022/03/11 05:21 by gthanos