java:static_keyword

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
java:static_keyword [2017/02/16 10:57]
gthanos [Στατικές μεταβλητές και μέθοδοι της κλάσης]
java:static_keyword [2017/03/03 16:33]
gthanos [Στατικές μεταβλητές της κλάσης]
Line 47: Line 47:
 Και οι δύο παραπάνω τρόποι προσπέλασης είναι ισοδύναμοι για τον compiler. Ο 2ος τρόπος προσπέλασης **ΔΕΝ** συνιστάται,​ καθώς δεν είναι σαφές αν πρόκειται για μεταβλητή που ανήκει στην κλάση ή στο αντικείμενο. Αντίθετα,​ ο 1ος τρόπος αφορά αποκλειστικά μεταβλητές που ανήκουν στην κλάση και για αυτό θεωρείται προγραμματιστικά ορθότερος. Δείτε τον κώδικα της κλάσης **Rectangle** όπως διαμορφώνεται με την χρήση των δύο επιπλέον πεδίων και την καταγραφή του αριθμού των αντικειμένων που δημιουργούνται. Και οι δύο παραπάνω τρόποι προσπέλασης είναι ισοδύναμοι για τον compiler. Ο 2ος τρόπος προσπέλασης **ΔΕΝ** συνιστάται,​ καθώς δεν είναι σαφές αν πρόκειται για μεταβλητή που ανήκει στην κλάση ή στο αντικείμενο. Αντίθετα,​ ο 1ος τρόπος αφορά αποκλειστικά μεταβλητές που ανήκουν στην κλάση και για αυτό θεωρείται προγραμματιστικά ορθότερος. Δείτε τον κώδικα της κλάσης **Rectangle** όπως διαμορφώνεται με την χρήση των δύο επιπλέον πεδίων και την καταγραφή του αριθμού των αντικειμένων που δημιουργούνται.
  
-<code java>+<​code ​java Rectangle.java>
 public class Rectangle { public class Rectangle {
- +     
 +  // fields
   private int width;   private int width;
   private int height;   private int height;
   private Point origin;   private Point origin;
-  
-  // the Rectangle class has one constructor 
-  public Rectangle(int width, int height, Point origin) { 
-    this.width = width; 
-    this.height = height; 
-    this.origin = origin; 
-  } 
-        ​ 
   // add an instance variable for the object ID   // add an instance variable for the object ID
   private int id;   private int id;
Line 67: Line 60:
   // number of Rectangle objects instantiated   // number of Rectangle objects instantiated
   private static int numberOfRectangles = 0;   private static int numberOfRectangles = 0;
 +
 +  // constructors
 +  public Rectangle(int initWidth, int initHeight, Point initOrigin) {
 +    width = initWidth;
 +    height = initHeight;
 +    origin = initOrigin;
 +  }
  
   public int getID() {   public int getID() {
Line 75: Line 75:
     return numberOfRectangles;​     return numberOfRectangles;​
   }   }
- +    ​ 
-  /* Ο κώδικας από εδώ και κάτω είναι ίδιος με προηγούμενες +  // methods 
-   * εκδόσεις τις κλάσης και παραλείπεται για λόγους οικονομίας +  ​public void setWidth(int newWidth ) { 
-   ​χώρου. +    width = newWidth; 
-   */+  } 
 +   
 +  public int getWidth() { 
 +    return width; 
 +  } 
 +     
 +  public void setHeight(int newHeight ) { 
 +    height = newHeight;​ 
 +  } 
 +   
 +  public int getHeight() { 
 +    return height; 
 +  } 
 +     
 +  public void setOrigin(Point newOrigin) { 
 +    origin = newOrigin;​ 
 +  } 
 +   
 +  public Point getOrigin() { 
 +    return origin; 
 +  } 
 +   
 +  public int getArea() { 
 +       ​return width height; 
 +  } 
 +    
 +  ​// Move rectangle origin by dx,dy 
 +  public void move(int dx, int dy) { 
 +    origin.setX( origin.getX() + dx ); 
 +    origin.setY( origin.getY() + dy ); 
 +  }
 } }
 </​code>​ </​code>​
java/static_keyword.txt · Last modified: 2017/03/03 16:36 by gthanos