java:this_operator

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
Next revision Both sides next revision
java:this_operator [2016/01/22 16:05]
gthanos
java:this_operator [2016/01/25 09:07]
gthanos
Line 1: Line 1:
 ====== ​ Ο τελεστής this ====== ====== ​ Ο τελεστής this ======
 +
 +===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this =====
 +
 +Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα,​ ως εξής
 +
 +<code java>
 +public class Rectangle {
 +    ​
 +  private int width;
 +  private int height;
 +  private Point origin;
 +    ​
 +  // the Rectangle class has one constructor
 +  public Rectangle(int width, int height, Point origin) {
 +    width = width;
 +    height = height;
 +    origin = o;
 +  }
 +  ...
 +}
 +</​code>​
 +
 +Στον παραπάνω κώδικα οι τοπικές παράμετροι του κατασκευαστή συμπίπτουν με τα ονόματα των μεταβλητών της κλάσης. Σε αυτή την περίπτωση η τοπική μεταβλητή "​κρύβει"​ (shadows) την μεταβλητή του αντικειμένου της κλάσης. Προκειμένου να έχουμε πρόσβαση στην μεταβλητή του αντικειμένου της κλάσης θα πρέπει να χρησιμοποιήσουμε τον τελεστή **this**, ως εξής:
 +
 +<code java>
 +public class Rectangle {
 +    ​
 +  private int width;
 +  private int height;
 +  private Point origin;
 +    ​
 +  // the Rectangle class has one constructor
 +  public Rectangle(int width, int height, Point origin) {
 +    this.width = width;
 +    this.height = height;
 +    this.origin = o;
 +  }
 +  ...
 +}
 +</​code>​
 +
 +__O τελεστής **this** υποδεικνύει το τρέχον αντικείμενο__. Με τον παραπάνω τρόπο μπορούμε να διακρίνουμε μία μεταβλητής του τρέχοντος αντικειμένου (this.variable) από μία τοπική μεταβλητή (variable) με το ίδιο όνομα.
  
 ===== Πρόσβαση στους κατασκευαστές της κλάσης μέσω του τελεστή this ===== ===== Πρόσβαση στους κατασκευαστές της κλάσης μέσω του τελεστή this =====
Line 77: Line 119:
 </​WRAP>​ </​WRAP>​
  
-===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this ===== 
- 
-Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα,​ ως εξής 
- 
-<code java> 
-public class Rectangle { 
-    ​ 
-  private int width; 
-  private int height; 
-  private Point origin; 
-    ​ 
-  // the Rectangle class has one constructor 
-  public Rectangle(int width, int height, Point origin) { 
-    width = width; 
-    height = height; 
-    origin = o; 
-  } 
-  ... 
-} 
-</​code>​ 
- 
-Στον παραπάνω κώδικα οι τοπικές παράμετροι του κατασκευαστή συμπίπτουν με τα ονόματα των μεταβλητών της κλάσης. Σε αυτή την περίπτωση η τοπική μεταβλητή "​κρύβει"​ (shadows) την μεταβλητή του αντικειμένου της κλάσης. Προκειμένου να έχουμε πρόσβαση στην μεταβλητή του αντικειμένου της κλάσης θα πρέπει να χρησιμοποιήσουμε τον τελεστή **this**, ως εξής: 
- 
-<code java> 
-public class Rectangle { 
-    ​ 
-  private int width; 
-  private int height; 
-  private Point origin; 
-    ​ 
-  // the Rectangle class has one constructor 
-  public Rectangle(int width, int height, Point origin) { 
-    this.width = width; 
-    this.height = height; 
-    this.origin = o; 
-  } 
-  ... 
-} 
-</​code>​ 
- 
-__O τελεστής **this** υποδεικνύει το τρέχον αντικείμενο__. Με τον παραπάνω τρόπο μπορούμε να διακρίνουμε μία μεταβλητής του τρέχοντος αντικειμένου (this.variable) από μία τοπική μεταβλητή (variable) με το ίδιο όνομα. 
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
-O τελεστής **this** δείχνει στο τρέχον αντικείμενο της εκάστοτε κλάσης,​ για λογαριασμό του οποίου εκτελείται.+O τελεστής **this** δείχνει στο τρέχον αντικείμενο της εκάστοτε κλάσης,​ για λογαριασμό του οποίου εκτελείται. Μπορείτε να τον χρησιμοποιείτε τόσο για να προσπελάσετε τα πεδία του αντικειμένου ή να καλέσετε τον κατασκευαστή της κλάσης για το τρέχον αντικείμενο. Με χρήση του τελεστή **this** μπορείτε επίσης να καλέσετε και μεθόδους της κλάσης από το τρέχον αντικείμενο,​ πράγμα που όμως δεν θα το δείτε στην πράξη, καθώς δεν υπάρχει ανάγκη για κάτι τέτοιο.
 </​WRAP>​ </​WRAP>​
  
 |Προηγούμενο:​ [[:​java:​objects| Δημιουργώντας Αντικείμενα ]] | Επόμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ]]| |Προηγούμενο:​ [[:​java:​objects| Δημιουργώντας Αντικείμενα ]] | Επόμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ]]|
  
java/this_operator.txt · Last modified: 2017/02/16 11:24 by gthanos