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

Langage Java Discussion :

Accès aux membres au sein d'une classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut Accès aux membres au sein d'une classe
    Bonjour,
    J'ai une déclaration toute simple du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class maClasse {
      private int mId;
      public  final int getId () {  return this.mId; }
      private final void setId (int val) {  this.mId = val; }
    }
    Je me pose une question sur l'utilisation de "this.membre" contre l'utilisation directe de "membre" au sein de la classe.
    Par convention empirique, j'utilise this.membre, mais est-ce qu'on a une différence au niveau performance et méthodologie utilisé dans la VM java si on utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class maClasse {
      private int mId;
      public  final int getId () {  return mId; }
      private final void setId (int val) {  mId = val; }
    }
    Est-ce que dans les 2 cas la VM exécute exactement la même chose et on est juste face à une convention d'écriture ou cette simple différence a d'autres conséquences ?
    Merci de m'éclairer !

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Les deux codes sont strictement identiques !

    a++

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par 50Nio Voir le message
    Je me pose une question sur l'utilisation de "this.membre" contre l'utilisation directe de "membre" au sein de la classe.
    Comme l'a dit adiGuba, les deux écritures reviennent strictement au même. Elles ont exactement la même signification, et sont interprétées de façon identique par le compilateur.

    Alors pourquoi utiliser "this.membre" ?
    1/ éventuellement pour des raisons de clarté : bien montrer qu'on parle d'une variable de classe, même si le "this" est parfois inutile
    2/ il y a des cas où "this.membre" et "membre" tout court ne désignent pas la même entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class maClasse {
       private int id;
       public  final int getId () {
          return this.id; // on pourrait écrire "return id;"
       }
       private final void setId (int id) {
          this.id = id; // on ne pourrait évidemment pas écrire "id = id;"
          // id représente le paramètre de la méthode
          // this.id représente la variable de classe
       }
    }

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    D'ac merci !
    C'est pour ça qu'on ne trouve rien quand on cherche là dessus et des notions d'optimisation du code.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par 50Nio Voir le message
    C'est pour ça qu'on ne trouve rien quand on cherche là dessus et des notions d'optimisation du code.
    Ce n'est pas une "astuce" du langage qui va optimiser ton code !

    Avant d'optimiser le code il faut avoir de beau algorithme et une bonne architecture OO, et avoir trouvé l'origine des problèmes de perfs.

    Sinon les "optimisations" peuvent avoir un effet inverse...

    a++

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    Oui c'est exact, le mot "optimisation" était trop fort. C'est plus histoire de faire direct les petits trucs (du genre mettre final dès que possible) proprement.

    Merci en tout cas. :-)

    PS:Hé, attention, j'ai commencé par faire un beau diagramme UML de tout le projet, après c'est pas pour ça qu'il est bon, mais ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 25
    Dernier message: 20/07/2011, 09h10
  2. Accès aux membres d'une structure
    Par chocomaria dans le forum Débuter
    Réponses: 6
    Dernier message: 08/11/2010, 19h08
  3. Accès aux membres d'une classe impossible
    Par couicsilver dans le forum C++
    Réponses: 5
    Dernier message: 18/03/2009, 11h21
  4. Accès aux membres d'une structure C
    Par Gulish dans le forum C++
    Réponses: 4
    Dernier message: 22/03/2008, 16h09
  5. Réponses: 5
    Dernier message: 01/02/2007, 13h14

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