La référence this

images/whitebelt.png

Dans les codes de méthodes d’instance (et de constructeur) les membres d’instance sont en portée. Ils peuvent être référencés en utilisant this (ce n’est pas strictement obligatoire mais c’est vivement conseillé: noter qu’avec des IDE sophistiqués l'écriture d’un simple this permet d’enclencher des opérations de complétion -donc on y gagne en temps!-).

[Avertissement]Attention!

On ne peut pas utiliser this dans un contexte partagé (static)! Dans un code static il n’y a pas d'"état" d’instance associé: on ne peut accéder aux membres d’instance.

Il y a quelques cas ou l’usage de this s’impose :

public class  Climatisation { //  Data Object
   final double temperature ;
   final int humidité ;
   final long timestamp = System.currentTimeMillis() ;

   public Climatisation ( double temperature, int humidité) {
      this.temperature = temperature ;
      this.humidité = humidité ;
   }
}
   // une trace avec un java.util.Logger
   loggerCourant.log(Level.FINE,"état de l'instance courante", this) ;
   // Dans la classe CompteEnBanque
   public CompteEnBanque( Client cli , double dépôtInitial, double découvertAutorisé) {
      this.client = cli ;
      this.solde = dépôtInitial ;
      this.découvertAutorisé = découvertAutorisé ;
   }

   public CompteEnBanque(Client cli, double dépôtInitial) {
      this(cli, dépôtInitial, DECOUVERT_PAR_DEFAUT) ; // appelle constructeur # 1
   }

   public CompteEnBanque(Client cli) {
      this(cli,0) ; // appelle constructeur #2
   }