This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:member_initialization [2016/09/19 07:30] gthanos [Final Methods] |
java:member_initialization [2020/02/21 12:28] gthanos [Παράδειγμα αρχικοποίησης στατικών και μη στατικών πεδίων] |
||
|---|---|---|---|
| Line 52: | Line 52: | ||
| </ | </ | ||
| - | Το πλεονέκτημα των στατικών μεθόδων είναι ότι μπορούν να επαναχρησιμοποιηθούν σε περίπτωση που χρειαστεί να επανα-αρχικοποιηθεί η στατική μεταβλητή της κλάσης. | + | <WRAP tip 80% center round> |
| + | Το πλεονέκτημα των στατικών μεθόδων είναι ότι μπορούν να επαναχρησιμοποιηθούν σε περίπτωση που χρειαστεί να αρχικοποιηθεί | ||
| + | </ | ||
| ===== Αρχικοποιώντας μη-στατικά πεδία ===== | ===== Αρχικοποιώντας μη-στατικά πεδία ===== | ||
| Line 58: | Line 60: | ||
| ==== Initialization Blocks ==== | ==== Initialization Blocks ==== | ||
| - | Τα // | + | Τα // |
| ==== Final Methods ==== | ==== Final Methods ==== | ||
| - | Παρακάτω δίνεται ένα παράδειγμα χρήσης //final// μεθόδου για την αρχικοποίηση ενός μη στατικού πεδίου. Μία //final// μέθοδος δεν μπορεί να γίνει // | + | Παρακάτω δίνεται ένα παράδειγμα χρήσης //final// μεθόδου για την αρχικοποίηση ενός μη στατικού πεδίου. Μία //final// μέθοδος δεν μπορεί να γίνει // |
| <code java> | <code java> | ||
| Line 75: | Line 77: | ||
| </ | </ | ||
| - | Προφανώς | + | Προφανώς |
| + | |||
| + | ===== Παράδειγμα αρχικοποίησης στατικών και μη στατικών πεδίων ===== | ||
| <code java Rectangle.java> | <code java Rectangle.java> | ||
| - | public | + | class Rectangle { |
| | | ||
| // the Rectangle class has 3 fields | // the Rectangle class has 3 fields | ||
| - | | + | int width; |
| - | | + | int height; |
| - | | + | Point origin; |
| | | ||
| - | | + | int id = initializeId(); |
| // add a class variable for the | // add a class variable for the | ||
| // number of Rectangle objects instantiated | // number of Rectangle objects instantiated | ||
| - | | + | static int numberOfRectangles = initNumberOfRectangles(); |
| | | ||
| - | | + | Rectangle(int initWidth, int initHeight, Point initOrigin) { |
| this(initWidth, | this(initWidth, | ||
| origin = initOrigin; | origin = initOrigin; | ||
| } | } | ||
| | | ||
| - | | + | Rectangle(int initWidth, int initHeight) { |
| width = initWidth; | width = initWidth; | ||
| height = initHeight; | height = initHeight; | ||
| Line 106: | Line 110: | ||
| | | ||
| // static method for initializing static variable. | // static method for initializing static variable. | ||
| - | | + | static int initNumberOfRectangles() { |
| System.out.println(" | System.out.println(" | ||
| return 0; | return 0; | ||
| Line 124: | Line 128: | ||
| | | ||
| //final method | //final method | ||
| - | | + | final int initializeId() { |
| int _id = 200; | int _id = 200; | ||
| System.out.println(" | System.out.println(" | ||
| Line 130: | Line 134: | ||
| } | } | ||
| | | ||
| - | | + | int getID() { |
| return id; | return id; | ||
| } | } | ||
| - | | + | static int getNumberOfRectangles() { |
| return numberOfRectangles; | return numberOfRectangles; | ||
| } | } | ||
| | | ||
| - | | + | void setWidth(int newWidth ) { |
| width = newWidth; | width = newWidth; | ||
| } | } | ||
| | | ||
| - | | + | int getWidth() { |
| return width; | return width; | ||
| } | } | ||
| | | ||
| - | | + | void setHeight(int newHeight ) { |
| height = newHeight; | height = newHeight; | ||
| } | } | ||
| | | ||
| - | | + | int getHeight() { |
| return height; | return height; | ||
| } | } | ||
| | | ||
| - | | + | void setOrigin(Point newOrigin) { |
| origin = newOrigin; | origin = newOrigin; | ||
| } | } | ||
| | | ||
| - | | + | Point getOrigin() { |
| return origin; | return origin; | ||
| } | } | ||
| | | ||
| - | | + | int getArea() { |
| | | ||
| } | } | ||
| // Move rectangle origin by x,y | // Move rectangle origin by x,y | ||
| - | | + | void move(int dx, int dy) { |
| origin.setX( origin.getX() + dx ); | origin.setX( origin.getX() + dx ); | ||
| origin.setY( origin.getY() + dy ); | origin.setY( origin.getY() + dy ); | ||
| } | } | ||
| | | ||
| - | | + | String toString(String objName) { |
| return " | return " | ||
| } | } | ||
| | | ||
| - | | + | static void main(String []args) { |
| System.out.println(" | System.out.println(" | ||
| Point p = new Point(10, | Point p = new Point(10, | ||
| Line 200: | Line 204: | ||
| Number of Rectangles: 1 | Number of Rectangles: 1 | ||
| </ | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Από τα παραπάνω προκύπτει ότι η σειρά εκτέλεσης μεταξύ στατικών και μη στατικών μεθόδων, | ||
| + | - Στατικές μέθοδοι | ||
| + | - Στατικά μπλοκ | ||
| + | - Μη στατικές //final// μέθοδοι | ||
| + | - Μη στατικά μπλοκ | ||
| + | - Κατασκευαστές της κλάσης | ||
| + | </ | ||
| |Προηγούμενο: | |Προηγούμενο: | ||