java:member_initialization

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
java:member_initialization [2016/02/11 09:34]
gthanos [Final Methods]
java:member_initialization [2017/02/16 11:29] (current)
gthanos [Final Methods]
Line 28: Line 28:
 ==== Static Initialization Blocks ==== ==== Static Initialization Blocks ====
  
-To //static initialization block// είναι ένα τμήμα κώδικα τοποθετημένο μέσα σε παρενθέσεις { } που προσδιορίζεται από τη λέξη //static//, όπως παρακάτω:​+To //static initialization block// είναι ένα τμήμα κώδικα τοποθετημένο μέσα σε άγκιστρα ​{ } που προσδιορίζεται από τη λέξη //static//, όπως παρακάτω:​
  
 <code java> <code java>
Line 77: Line 77:
 Προφανώς η μέθοδος μπορεί να επαναχρησιμοποιηθεί και σε άλλα σημεία του κώδικα της κλάσης. Η χρήση //final// μεθόδου κρίνεται απαραίτητη για την αρχικοποίηση μη στατικών πεδίων,​ διότι σε περίπτωση ύπαρξης κληρονόμων της κλάσης μπορεί να υπάρξουν προβλήματα. Προφανώς η μέθοδος μπορεί να επαναχρησιμοποιηθεί και σε άλλα σημεία του κώδικα της κλάσης. Η χρήση //final// μεθόδου κρίνεται απαραίτητη για την αρχικοποίηση μη στατικών πεδίων,​ διότι σε περίπτωση ύπαρξης κληρονόμων της κλάσης μπορεί να υπάρξουν προβλήματα.
  
-<code java Bicycle.java>+<code java Rectangle.java>
 public class Rectangle { public class Rectangle {
     ​     ​
Line 91: Line 91:
   private static int numberOfRectangles = initNumberOfRectangles();​   private static int numberOfRectangles = initNumberOfRectangles();​
     ​     ​
-  ​// the Rectangle class has one constructor +  public Rectangle(int ​initWidth, int initHeight, Point initOrigin) { 
-  ​public Rectangle(int ​setWidth, int setHeight, Point o) { +    this(initHeightinitHeight); 
-    this(setWidthsetHeight); +    origin = initOrigin;
-    origin = o;+
   }   }
   ​   ​
-  public Rectangle(int ​setWidth, int setHeight) { +  public Rectangle(int ​initWidth, int initHeight) { 
-    width = setWidth+    width = initWidth
-    height = setHeight;+    height = initHeight;​ 
 +    origin = new Point(0,0);
     id = ++numberOfRectangles;​     id = ++numberOfRectangles;​
-    System.out.println("​Initialized object id in constructor,​ id:"​+id);​+    System.out.println("​Initialized object id in constructor,​ id:" + id);
   }   }
   ​   ​
Line 120: Line 120:
   {   {
     id = 100;     id = 100;
-    System.out.println("​initialize objectId in block, id: "+id);+    System.out.println("​initialize objectId in block, id: " + id);
   }   }
   ​   ​
Line 126: Line 126:
   private final int initializeId() {   private final int initializeId() {
     int _id = 200;     int _id = 200;
-    System.out.println("​initialize objectId in final method, id: "​+_id ​ );+    System.out.println("​initialize objectId in final method, id: " + _id  );
     return _id;     return _id;
   }   }
Line 138: Line 138:
   }   }
     ​     ​
-  // the Rectangel class has 3 methods 
   public void setWidth(int newWidth ) {   public void setWidth(int newWidth ) {
     width = newWidth;     width = newWidth;
Line 155: Line 154:
   }   }
     ​     ​
-  public void setOrigin(Point ​o) { +  public void setOrigin(Point ​newOrigin) { 
-    origin = o;+    origin = newOrigin;
   }   }
   ​   ​
Line 174: Line 173:
   ​   ​
   public String toString(String objName) {   public String toString(String objName) {
-      return "​["​+objName+"​."​+id+"​] Width: "​+width+",​ Height: "​+height+",​ Origin: "​+origin;​+      return "​["​+objName+"​."​ + id + "] Width: " + width + ", Height: " + height + ", Origin: " + origin;
   }   }
   ​   ​
Line 183: Line 182:
     System.out.println(rectOne.toString("​rectOne"​));​     System.out.println(rectOne.toString("​rectOne"​));​
     System.out.println("​-------------------------------"​);​     System.out.println("​-------------------------------"​);​
-    System.out.println("​Number of Rectangles: "​+getNumberOfRectangles() );+    System.out.println("​Number of Rectangles: " + getNumberOfRectangles() );
   }   }
 } }
 </​code>​ </​code>​
  
-Το αποτέλεσμα εκτέλεσης το παραπάνω κώδικα είναι το παρακάτω:​+Το αποτέλεσμα εκτέλεσης του παραπάνω κώδικα είναι το παρακάτω:​
 <​code>​ <​code>​
 $ java Rectangle $ java Rectangle
Line 202: Line 201:
 </​code>​ </​code>​
  
-|Προηγούμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ]] | Επόμενο:​ [[ :java:packages:​intro ​Πακέτα στη γλώσσα προγραμματισμού Java ]]|+<WRAP tip 80% center round> 
 +Από τα παραπάνω προκύπτει ότι η σειρά εκτέλεσης μεταξύ στατικών και μη στατικών μεθόδων,​ μπλοκ και κατασκευαστών είναι η εξής: 
 +  - Στατικές μέθοδοι 
 +  - Στατικά μπλοκ 
 +  - Μη στατικές //final// μέθοδοι 
 +  - Μη στατικά μπλοκ 
 +  - Κατασκευαστές της κλάσης 
 +</​WRAP>​ 
 + 
 +|Προηγούμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ​]] | [[ :toc | Περιεχόμενα ​]] | Επόμενο:​ [[ :java:toString ​Η μέθοδος toString ​]]|
  
  
java/member_initialization.1455183268.txt.gz · Last modified: 2016/02/26 11:15 (external edit)