java:member_initialization
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:member_initialization [2018/02/09 12:47] – [Στατικές Μέθοδοι] gthanos | java:member_initialization [2022/02/24 12:39] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 14: | Line 14: | ||
</ | </ | ||
- | Η παραπάνω μέθοδος αφορά **στατικά** (static) και **μη στατικά** πεδία, προϋποθέτει όμως ότι η ανάθεση της τιμής μπορεί αν γίνει μόνο με μία εντολή (όπως παραπάνω). Πιο σύνθετες μέθοδοι ανάθεσης (π.χ. | + | Η παραπάνω μέθοδος αφορά **στατικά** (static) και **μη στατικά** πεδία, προϋποθέτει όμως ότι η ανάθεση της τιμής μπορεί αν γίνει μόνο με μία εντολή (όπως παραπάνω). Πιο σύνθετες μέθοδοι ανάθεσης (π.χ. αρχικοποίηση πινάκων) μπορούν να γίνουν μέσα στους κατασκευαστές τις κλάσης για τα μη στατικά πεδία. Η αρχικοποίηση στατικών πεδίων δεν |
- | Για την αρχικοποίηση πεδίων εκτός από τους κατασκευαστές έχουμε τις εξής επιλογές: | + | Για την αρχικοποίηση πεδίων εκτός από τους κατασκευαστές έχουμε τις εξής |
* για στατικά πεδία | * για στατικά πεδία | ||
* **static initialization blocks**. | * **static initialization blocks**. | ||
Line 80: | Line 80: | ||
===== Παράδειγμα αρχικοποίησης στατικών και μη στατικών πεδίων ===== | ===== Παράδειγμα αρχικοποίησης στατικών και μη στατικών πεδίων ===== | ||
- | |||
<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 111: | 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 129: | Line 128: | ||
| | ||
//final method | //final method | ||
- | | + | final int initializeId() { |
int _id = 200; | int _id = 200; | ||
System.out.println(" | System.out.println(" | ||
Line 135: | 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 | ||
- | public void move(int dx, int dy) { | ||
- | origin.setX( origin.getX() + dx ); | ||
- | origin.setY( origin.getY() + dy ); | ||
} | } | ||
| | ||
- | | + | String |
- | return " | + | return " |
} | } | ||
| | ||
Line 184: | Line 177: | ||
System.out.println(" | System.out.println(" | ||
Point p = new Point(10, | Point p = new Point(10, | ||
+ | | ||
Rectangle rectOne = new Rectangle(30, | Rectangle rectOne = new Rectangle(30, | ||
- | System.out.println(rectOne.toString(" | ||
System.out.println(" | System.out.println(" | ||
+ | System.out.println(rectOne.description(" | ||
System.out.println(" | System.out.println(" | ||
} | } | ||
Line 201: | Line 195: | ||
initialize objectId in block, id: 100 | initialize objectId in block, id: 100 | ||
Initialized object id in constructor, | Initialized object id in constructor, | ||
- | [rectOne.1] Width: 30, Height: 40, Origin: [Point xPos:10, yPos:20] | ||
------------------------------- | ------------------------------- | ||
+ | [rectOne] (id: 1) Width: 30, Height: 40 | ||
Number of Rectangles: 1 | Number of Rectangles: 1 | ||
</ | </ | ||
Line 215: | Line 209: | ||
</ | </ | ||
- | |Προηγούμενο: | + | |Προηγούμενο: |
- | + | ||
- | + | ||
- | + | ||
java/member_initialization.1518180421.txt.gz · Last modified: 2018/02/09 12:47 (external edit)