IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Mots clé 'this' et 'super'


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut Mots clé 'this' et 'super'
    bonjour
    quelqu'un peut m'expliquer avec un exemple simple
    les keyword "this" et "super"

    je confond :
    tous que j'ai vue dans le toile,me complique

    aidez moi s'il vous plaît

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Le mot-clé this peut être :
    - L'instance d'objet en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void setX(int x) {
      this.x = x;
    }
    - L'appel d'un autre constructeur de la classe en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Livre(String titre) {
      description = titre;
    }
     
    public Livre() {
      this("Sans titre");
    }
    - (rare) Une notation pour accéder à l'instance en cours d'une classe englobante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class Englobante {
      void saySomething() {
        System.out.println("Je suis Englobante"):
      }
     
      class Interne {
        Interne() {
          // Appel à saySomething() de la classe Englobante
          Englobante.this.saySomething();
        }
     
        void saySomething() {
          System.out.println("Je suis Interne"):
        }
     
      }
    }
    En résumé, this a à voir avec l'instance en cours, ou avec la classe en cours.


    Le mot-clé super peut être :
    - Une notation pour accéder aux membres, méthodes et classes accessibles à la classe mère, mais qui sont masquées dans la classe en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Mere {
      protected int x = 10;
    }
     
    class Fille extends Mere {
      protected String x = "Hello";
      Fille() {
        // x est une String qui vaut "Hello" et super.x est un int qui vaut 10.
        System.out.println(x + " " + super.x);
      }
    }
    - Un appel explicite à un constructeur de la classe mère. Une convention Java est que si un constructeur ne fait pas appel à super(...), c'est comme s'il faisait appel au super() sans paramètre : le constructeur par défaut de la classe mère. Si la classe mère n'a pas de constructeur par défaut, un appel à l'un de ses constructeurs avec super est obligatoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Livre {
      String description;
      public Livre(String titre) {
        description = titre;
      }
    }
     
    class LivreSansTitre extends Livre {
      public LivreSansTitre() {
        super("Pas de titre");
      }
    }
    En résumé, super a à voir avec la classe mère.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    bonjour
    je comprends bien à quoi sert "this" et "super"
    mais je ne sais pas comment placer dans le programme,pouvez vous m'aider
    encore plus si ça vous dérange pas

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,
    Les mots clés this et super vont être à utiliser dans les classes concernées.
    Quelle est la structure de votre programme ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    je n'ai pas un programme précis,vous donnez vous même un programme quelconque et m'expliquez s'il vous plaît

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    dans cette exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public Livre(String titre) {
      description = titre;
    }
     
    public Livre() {
      this("Sans titre");
    }
    titre de livre est sans titre
    est ce que je suis juste?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    Pour completer tout ce qui a été dit, Voici ce que vous devez encore retenir:
    - Le mot clé this refère au conteneur courant (généralement la classe courante).
    ex: pour acceder à la variable x d'une classe A à partir de la classe B on écrira:
    A.x;
    A l'intérieur de B, on accedera à la variable x en faisant this.x
    - Le mot clé super sert à faire appel au constructeur de la classe de base.

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    L'ennui c'est que c'est bien trop simpliste, et que ça ne se concentre que sur un seul aspect de this et un seul aspect de super. Pas top quand on a besoin de ce dont tu ne parles pas.

    Citation Envoyé par luc02 Voir le message
    - Le mot clé this refère au conteneur courant (généralement la classe courante).
    Non, l'objet courant. L'instance courante si tu préfères. Pas la classe courante. (Sauf si on utilise this comme appel de constructeur, auquel cas ça se discute.)

    ex: pour acceder à la variable x d'une classe A à partir de la classe B on écrira:
    A.x;
    A l'intérieur de B, on accedera à la variable x en faisant this.x
    Non non non, tu t'embrouilles, là. Ton truc ça ne marche que si le x de A est un membre statique, et le x de B un membre non statique. Ça n'a juste rien à voir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    - Le mot clé super sert à faire appel au constructeur de la classe de base.
    De la classe mère, pas de la classe de base. Elle peut elle-même avoir une mère, qui a elle-même une mère...
    De plus, super ne concerne pas que le constructeur : on peut aussi appeler les méthodes de la classe mère avec. (Et adresser les attributs et les classes imbriquées, aussi, mais c'est déjà plus rare.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Définition de classe en vba : mot clé this ?
    Par LiTiL_DiViL dans le forum Général VBA
    Réponses: 1
    Dernier message: 21/08/2009, 14h03
  2. Mot clé this classe javascript
    Par Delprog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2009, 14h51
  3. mot clé this
    Par grospatapouf dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 15/07/2008, 13h49
  4. mot clé this
    Par henpower dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 10/04/2008, 13h05
  5. Réponses: 7
    Dernier message: 08/01/2006, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo