Partage
  • Partager sur Facebook
  • Partager sur Twitter

le mot clé this

Sujet résolu
    3 avril 2009 à 14:26:12

    salut mes amis

    j'ai lu le cours de cysboy et j'arrive pas de comprendre vraiment a quoi sert <this>, si vous permettez aidez-moi à comprendre ce truc la.
    merci d 'avance
    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2009 à 14:44:35

      Regarde ici
      En plus de ce qui est cité, l'utilisation du mot clé "this" rend le code plus lisible ;)

      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2009 à 16:11:29

        Le mot clé this désigne l'instance courante.
        On va juste faire un petit rappel sur quelques notions d'objets. La POO permet de représenter informatiquement n'importe quelle entité de la vie réelle ou imaginaire et permet de les faire communiquer ensemble. Dès lors, je vais pouvoir représenter une voiture, un avion, un personnage via un langage de programmation.

        Ainsi, un grand nombre de langages utilisent ce concept. Maintenant, si l'on souhaite représenter une voiture avec java. On dot d'abord savoir de quoi est constitué une voiture. Basiquement, on peut la représenter ainsi :

        - 4 roues
        - Un moteur
        - Une carrosserie

        Ces éléments sont représentés en java par des attributs. Ce sont les caractéristiques de ma voiture.

        Maintenant, on doit s'interroger sur l'utilité de notre voiture. Que peut t-elle faire ? Citons quelques possibilités :

        - avancer
        - reculer
        - tourner

        Ce que nous venons de faire, c'est de concevoir notre voiture. Nous avons réaliser le plan de notre voiture.

        Maintenant, nous aimerions pouvoir l'utiliser. Nous allons donc procéder à son instanciation (à sa création). L'instanciation correspond à l'étape on l'on donne naissance à un objet en l'occurrence ici une voiture.

        Voici le code :

        public class Voiture
        {
           private int roues;
           private String moteur;
           private boolean carosserie;
        
           public Voiture (int roues, String moteur, boolean carosserie)
           {
              this.roues = roues;
              this.moteur = moteur;
              this.carosserie = carosserie;
           }
        
           public void avancer ()
           {
               System.out.println("J'avance");
           }
           
        }
        
        public class Test
        {
          public static void main (String [] args)
          {
            Voiture porsche = new Voiture(4,"V8",true);
            porsche.avancer();
          }
        }
        


        Donc ici, que désigne this ? This désigne les attributs courants de ma voiture (les éléments de ma voiture). C'est-à-dire les attributs qui sont ceux de ma voiture au moment où je l'utilise. Donc ici, ce que l'on fait, c'est qu'on place les valeurs renseignées dans le constructeur et on les renseigne dans les attributs de ma voiture afin d'en modifier leurs valeurs.

        Maintenant pour ce qui concerne l'auto référence this utilisée "seule". Ici, cela désigne l'objet courant. Donc la référence de l'objet courant. Si veux effectuer des opérations sur moi même donc sur la voiture courante, j'utiliserais this. (je dois trouver un exemple pour être plus clair).
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          3 avril 2009 à 16:22:05

          Ca permet également d'appeler le constructeur de la classe:
          public class MyClass {
          
              private int number;
              private String string;
          
              public MyCLass() {
                  super();
                  this.number = 0;
                  this.string = "blablabla";
              }
          
              public MyClass(final int num) {
                  this();
                  this.number = num;
              }
          }
          


          • Partager sur Facebook
          • Partager sur Twitter
            3 avril 2009 à 16:25:37

            Juste un truc pour pas se retrouver un peu perdu. Nous devrions citer le fait que this() au même titre que super(), doit être la première instruction du constructeur et qu'il n'est donc pas possible de les utiliser conjointement.
            • Partager sur Facebook
            • Partager sur Twitter
              4 avril 2009 à 0:04:57

              merci à vous infiniment
              • Partager sur Facebook
              • Partager sur Twitter

              le mot clé this

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown