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 [2017/01/30 09:42] – gthanos | java:this_operator [2022/02/23 16:10] (current) – gthanos | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== | ====== | ||
| - | ===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this ===== | + | Μέσω του τελεστή **this** μπορούμε: |
| + | * να έχουμε πρόσβαση στα πεδία του τρέχοντος αντικειμένου όταν υπάρχουν και τοπικές μεταβλητές που έχουν το ίδιο όνομα με το αντικείμενο. | ||
| + | * κατά τη δημιουργία του αντικειμένου να καλέσουμε ένα κατασκευαστή μέσω ενός άλλου κατασκευαστή. | ||
| + | |||
| + | ===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης με χρήση του τελεστή this ===== | ||
| Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα, | Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα, | ||
| Line 45: | Line 49: | ||
| </ | </ | ||
| - | ===== Πρόσβαση στους κατασκευαστές της κλάσης μέσω του τελεστή this ===== | + | ===== Κλήση ενός κατασκευαστή μέσω άλλου κατασκευαστή με χρήση του τελεστή this ===== |
| Ας ξαναδούμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα θέλοντας να επιχειρήσουμε να επαναχρησιμοποιήσουμε τμήματα κώδικα ενός κατασκευαστή από έναν άλλο κατασκευαστή. | Ας ξαναδούμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα θέλοντας να επιχειρήσουμε να επαναχρησιμοποιήσουμε τμήματα κώδικα ενός κατασκευαστή από έναν άλλο κατασκευαστή. | ||
| <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 62: | Line 66: | ||
| } | } | ||
| | | ||
| - | | + | Rectangle(int initWidth, int initHeight, int xPos, int yPos) { |
| width = initWidth; | width = initWidth; | ||
| height = initHeight; | height = initHeight; | ||
| Line 74: | 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 86: | Line 90: | ||
| } | } | ||
| | | ||
| - | | + | Rectangle(int initWidth, int initHeight, int xPos, int yPos) { |
| this(initWidth, | this(initWidth, | ||
| } | } | ||
| Line 92: | Line 96: | ||
| } | } | ||
| </ | </ | ||
| - | |||
| - | __Το παραπάνω, | ||
| <WRAP important 80% center round> | <WRAP important 80% center round> | ||
| Line 99: | 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 115: | Line 117: | ||
| } | } | ||
| | | ||
| - | | + | Rectangle(int width, int height) { |
| this.width = width; | this.width = width; | ||
| this.height = height; | this.height = height; | ||
| Line 124: | Line 126: | ||
| </ | </ | ||
| - | + | /* | |
| - | < | + | < |
| Συμπερασματικά, | Συμπερασματικά, | ||
| * για να διακρίνεται τα πεδία του τρέχοντος αντικειμένου σε σχέση με τοπικές μεταβλητές που έχουν το ίδιο όνομα με τα πεδία αυτά. | * για να διακρίνεται τα πεδία του τρέχοντος αντικειμένου σε σχέση με τοπικές μεταβλητές που έχουν το ίδιο όνομα με τα πεδία αυτά. | ||
| * να καλέσετε τον κατασκευαστή της κλάσης για το τρέχον αντικείμενο. | * να καλέσετε τον κατασκευαστή της κλάσης για το τρέχον αντικείμενο. | ||
| + | </ | ||
| - | Μπορείτε να δείτε την κλάση **Rectangle**, | + | Παρακάτω, |
| - | </WRAP> | + | |
| + | < | ||
| + | class Rectangle { | ||
| + | |||
| + | // the Rectangle class has 3 fields | ||
| + | int width; | ||
| + | int height; | ||
| + | Point origin; | ||
| + | |||
| + | // the Rectangle class has two constructors | ||
| + | Rectangle(int width, int height, Point origin) { | ||
| + | | ||
| + | this.height = height; | ||
| + | this.origin = origin; | ||
| + | | ||
| + | |||
| + | Rectangle(int width, int height, int xPos, int yPos) { | ||
| + | this(width, height, new Point(xPos, yPos)); | ||
| + | | ||
| + | |||
| + | void setWidth(int width ) { | ||
| + | this.width = width; | ||
| + | } | ||
| + | |||
| + | int getWidth() { | ||
| + | return width; | ||
| + | } | ||
| + | |||
| + | void setHeight(int height ) { | ||
| + | this.height = height; | ||
| + | } | ||
| + | |||
| + | int getHeight() { | ||
| + | return height; | ||
| + | } | ||
| + | |||
| + | void setOrigin(Point o) { | ||
| + | origin = o; | ||
| + | } | ||
| + | |||
| + | Point getOrigin() { | ||
| + | return origin; | ||
| + | } | ||
| + | |||
| + | int getArea() { | ||
| + | | ||
| + | } | ||
| + | |||
| + | // Move rectangle origin by dx,dy | ||
| + | void moveOrigin(int dx, int dy) { | ||
| + | origin.setX( origin.getX() + dx ); | ||
| + | origin.setY( origin.getY() + dy ); | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| - | |Προηγούμενο: | + | |Προηγούμενο: |
java/this_operator.1485769353.txt.gz · Last modified: 2017/01/30 09:42 (external edit)
