Φωτογραφία ιορδάνης ασλανίδης
χρήση της δεσμευμένης λέξης this.
από ιορδάνης ασλανίδης - Thursday, 1 December 2011, 9:49 AM
 
παρατηρώ πως σε κάποιες settetrs χρησιμοποιείται η δεσμευμένη λέξη this. για παράδειγμα στην σελίδα 119 των σημειώσεων για να δοθεί τιμή στην μεταβλητή μέλος radius χρησιμοποιείται η μέθοδος:

public void setRadius(int radius) {
this.radius = radius;
}

αν έχω καταλάβει καλά, και δεδομένου του ότι η setRadius μπορεί να προσπελάσει την private μεταβλητή της κλάσης στην οποία ανήκει, η μέθοδος θα μπορούσε να είχε γραφτεί και ως:

public void setRadius(int rad) {
radius = rad;
}

κάτι αντίστοιχο γίνεται στην σελίδα 118 με την μεταβλητή y για παράδειγμα της κλάσης Point.

public void setY(int p_y){
y = p_y;
}

Γενικά, ποια υλοποίηση είναι προτιμώτερο να χρησιμοποιούμε?
 
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: χρήση της δεσμευμένης λέξης this.
από Νικόλαος Πανάγος - Thursday, 1 December 2011, 11:28 AM
 
Γεια σου Ιορδάνη,

συνηθως αποφεύγουμε τη χρήση του this γιατί κάνει τον κώδικα λιγότερο ευανάγνωστο. Στην πρώτη περίπτωση παρόλα αυτά είναι υποχρεωτικό ώστε να καταλάβει ο compiler τι είναι τι. Παρατήρησε πως τόσο η μεταβλητή μέλος όσο και η παράμετρος έχουν ακριβώς το ίδιο όνομα. Χρησιμοποιώντας λοιπόν την αναφορά this του υποδεικνύουμε πως θέλουμε να αποθηκεύσει την τιμή της παραμέτρου στη μεταβλητή μέλος.
Τη συνταξη αυτή με το this τη χρησιμοποιεί το Eclipse όταν του ζητήσουμε να παράξει από μόνο του τις getters/setters, οπότε χρησιμοποιεί ως ονόματα παραμέτρων τα ίδια με αυτά των μεταβλητών-μελών και αναγκαστικά κάνει χρήση του this.
Αν θέλεις να το αποφύγεις θα πρέπει να γράφεις τις getters/setters μόνος σου, εγώ προσωπικά συνήθως χρησιμοποιώ τη λειτουργία του Eclipse.

ΝΠ
Φωτογραφία ιορδάνης ασλανίδης
Re: Απάντηση: χρήση της δεσμευμένης λέξης this.
από ιορδάνης ασλανίδης - Thursday, 1 December 2011, 12:06 PM
 
αυτό παρατήρησα κι εγώ, δεν μου άρεσε πολύ το this αλλά αυτό υλοποιεί το eclipse (βέβαια δε νομίζω ότι υπάρχει άλλος αυτοματοποιημένος τρόπος δεδομένου ότι θα έπρεπε να βρει και όνομα για την μεταβλητή). αισθητική ή λειτουργικότητα λοιπόν?? smile anyway, ευχαριστώ για την άμεση απάντηση!
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: Re: Απάντηση: χρήση της δεσμευμένης λέξης this.
από Νικόλαος Πανάγος - Thursday, 1 December 2011, 12:48 PM
 
Ακριβώς! Για να μη μπει στη διαδικασία να ονομάζει παραμετρους ως arg1, arg2 κ.ο.κ. χρησιμοποιεί το όνομα της μεταβλητής που έχουμε θέσει εμείς.
Τίποτα, να είσαι καλά!

ΝΠ