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

  1. #21
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239

  2. #22
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Mere {
    	public static void main(String[]args)
    	{
              protected int x = 10; // variable locale à main, pas un attribut de Mere
    	}
    	System.out.println(x + " " + super.x); // code en dehors de toute méthode, illegal. De plus, super.x n'a aucun sens ici
    }
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Syntax error, insert "}" to complete MethodBody

    at Mere.main(Mere.java:4)

  3. #23
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Citation Envoyé par domxaline Voir le message
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Syntax error, insert "}" to complete MethodBody

    at Mere.main(Mere.java:4)
    Lit les commentaires au lieu de compiler n'importe quoi!

  4. #24
    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
    bien sûr, je lis bien,il manque "}";
    mais j'ai mis partout ce fameux crossbody
    rien changé,il y a 4 crossbody

    System.out.println(x + " " + super.x);
    dans ce ligne x est souligné avec un message
    x cannot be resolved or is not a field

    x du super.x

  5. #25
    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.

  6. #26
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    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, 15h03
  2. Mot clé this classe javascript
    Par Delprog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2009, 15h51
  3. mot clé this
    Par grospatapouf dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 15/07/2008, 14h49
  4. mot clé this
    Par henpower dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 10/04/2008, 14h05
  5. Réponses: 7
    Dernier message: 08/01/2006, 22h07

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