java:this_operator
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:this_operator [2020/02/21 12:16] – [Ο τελεστής this] gthanos | java:this_operator [2022/02/23 16:10] (current) – gthanos | ||
---|---|---|---|
Line 5: | Line 5: | ||
* κατά τη δημιουργία του αντικειμένου να καλέσουμε ένα κατασκευαστή μέσω ενός άλλου κατασκευαστή. | * κατά τη δημιουργία του αντικειμένου να καλέσουμε ένα κατασκευαστή μέσω ενός άλλου κατασκευαστή. | ||
- | ===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this ===== | + | ===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης με χρήση του τελεστή this ===== |
Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα, | Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα, | ||
Line 54: | Line 54: | ||
<code java> | <code java> | ||
- | public | + | class Rectangle { |
| | ||
- | | + | int width; |
- | | + | int height; |
- | | + | Point origin; |
| | ||
- | | + | Rectangle(int initWidth, int initHeight, Point initOrigin) { |
width = initWidth; | width = initWidth; | ||
height = initHeight; | height = initHeight; | ||
Line 66: | Line 66: | ||
} | } | ||
| | ||
- | | + | Rectangle(int initWidth, int initHeight, int xPos, int yPos) { |
width = initWidth; | width = initWidth; | ||
height = initHeight; | height = initHeight; | ||
Line 78: | Line 78: | ||
<code java> | <code java> | ||
- | public | + | class Rectangle { |
| | ||
- | | + | int width; |
- | | + | int height; |
- | | + | Point origin; |
| | ||
- | | + | Rectangle(int initWidth, int initHeight, Point initOrigin) { |
width = initWidth; | width = initWidth; | ||
height = initHeight; | height = initHeight; | ||
Line 90: | Line 90: | ||
} | } | ||
| | ||
- | | + | Rectangle(int initWidth, int initHeight, int xPos, int yPos) { |
this(initWidth, | this(initWidth, | ||
} | } | ||
Line 96: | Line 96: | ||
} | } | ||
</ | </ | ||
- | |||
- | <WRAP tip 80% center round> | ||
- | Ο τελεστής **this** χρησιμοποιείται για να κληθεί από ένα κατασκευαστή ένας άλλος κατασκευαστής της ίδιας κλάσης. | ||
- | </ | ||
<WRAP important 80% center round> | <WRAP important 80% center round> | ||
Line 105: | Line 101: | ||
<code java> | <code java> | ||
- | public | + | class Rectangle { |
| | ||
- | | + | int width; |
- | | + | int height; |
- | | + | Point origin; |
| | ||
- | | + | Rectangle(int width, int height, Point origin) { |
this.origin = origin; | this.origin = origin; | ||
/* η κλήση ενός κατασκευαστή μέσα από άλλο | /* η κλήση ενός κατασκευαστή μέσα από άλλο | ||
Line 121: | Line 117: | ||
} | } | ||
| | ||
- | | + | Rectangle(int width, int height) { |
this.width = width; | this.width = width; | ||
this.height = height; | this.height = height; | ||
Line 130: | Line 126: | ||
</ | </ | ||
+ | /* | ||
<WRAP info 80% center round> | <WRAP info 80% center round> | ||
Συμπερασματικά, | Συμπερασματικά, | ||
* για να διακρίνεται τα πεδία του τρέχοντος αντικειμένου σε σχέση με τοπικές μεταβλητές που έχουν το ίδιο όνομα με τα πεδία αυτά. | * για να διακρίνεται τα πεδία του τρέχοντος αντικειμένου σε σχέση με τοπικές μεταβλητές που έχουν το ίδιο όνομα με τα πεδία αυτά. | ||
* να καλέσετε τον κατασκευαστή της κλάσης για το τρέχον αντικείμενο. | * να καλέσετε τον κατασκευαστή της κλάσης για το τρέχον αντικείμενο. | ||
- | + | </ | |
- | </ | + | |
Παρακάτω, | Παρακάτω, | ||
<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; |
| | ||
// the Rectangle class has two constructors | // the Rectangle class has two constructors | ||
- | | + | Rectangle(int width, int height, Point origin) { |
this.width = width; | this.width = width; | ||
this.height = height; | this.height = height; | ||
Line 155: | Line 150: | ||
} | } | ||
| | ||
- | | + | Rectangle(int width, int height, int xPos, int yPos) { |
this(width, height, new Point(xPos, yPos)); | this(width, height, new Point(xPos, yPos)); | ||
} | } | ||
| | ||
- | | + | void setWidth(int width ) { |
this.width = width; | this.width = width; | ||
} | } | ||
| | ||
- | | + | int getWidth() { |
return width; | return width; | ||
} | } | ||
| | ||
- | | + | void setHeight(int height ) { |
this.height = height; | this.height = height; | ||
} | } | ||
| | ||
- | | + | int getHeight() { |
return height; | return height; | ||
} | } | ||
| | ||
- | | + | void setOrigin(Point o) { |
origin = o; | origin = o; | ||
} | } | ||
| | ||
- | | + | Point getOrigin() { |
return origin; | return origin; | ||
} | } | ||
| | ||
- | | + | int getArea() { |
| | ||
} | } | ||
// Move rectangle origin by dx,dy | // Move rectangle origin by dx,dy | ||
- | | + | 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 ); |
java/this_operator.1582287393.txt.gz · Last modified: 2020/02/21 12:16 (external edit)