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 :

Classe et sous-classe : Visibilité


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut Classe et sous-classe : Visibilité
    Bonjour,

    Voici un exemple de classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class uneClasse{
      // Un champ privé
      private Object champPrive;
     
      // Une sous-classe
      public classe uneSousClasse{
        // Méthode
        public void uneMéthode(){
          String test = champPrive.toString();
        }
      }
    }
    J'utilise eclipe, et j'ai mis en warning la gestion des "Access to a non-accessible member of an enclosing type". Donc sur le code "champPrive.toString()", j'ai le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Read access to enclosing field uneClasse.champPrive is emulated by a synthetic accessor method. Increasing its visibility will improve your performance.
    Je suppose que si l'option y est, c'est que (avec le nombre d'utilisation), les performances finissent par s'en ressentir, non ?
    Comment corriger ce "problème" sans perdre la visibilité privé du champ ? (Le champ ne doit rester accessible qu'à la classe et sa sous-classe)
    Pensez au tag quand votre problème est réglé !

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Ah, les performances...

    Si tu veux résoudre ce problème - ou supposé tel - peut être pourrais-tu passer champPrivé en attribut de UneSousClasse ?
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ah les joies de la recherche absolu de la performance !


    Mon avis désactive ce warning d'eclipse !

    Perso je trouve ce warning plutôt idiot, car la différence entre les deux doit être vraiment minime, et cela impacte la conception de l'objet

    Oui cela génère un appel de méthode supplémentaire, mais :
    • Le coût d'un appel de méthode est vraiment minime. Surtout qu'il ne s'agit pas d'une méthode virtuelle.
    • Il s'agit d'un simple "getter" qui pourra être inliné à la volé par la JVM. C'est à dire que l'appel de la méthode sera directement remplacé par son contenu, ce qui revient à un code strictement identique à l'exécution, en conservant une belle couche Objet !



    Maintenant, si tu arrives à me montrer un exemple avec d'importante différence de performance je changerais peut-être d'avis... mais cela m'étonnerait fortement !

    a++

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    Merci pour les réponses !

    Je désactive donc ce warning, et je transfère les attributs spécifiques dans les sous-classe
    Pensez au tag quand votre problème est réglé !

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

Discussions similaires

  1. méthodes de classe et sous-classe
    Par dancingmad dans le forum Langage
    Réponses: 4
    Dernier message: 17/01/2009, 17h16
  2. Réponses: 2
    Dernier message: 25/12/2008, 20h51
  3. [Reflection] Obtenir les sous-classes d'une classe
    Par El Saigneur dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 11/06/2007, 07h14
  4. [POO] Organiser ses classes (en sous classes)
    Par alexfrere dans le forum Langage
    Réponses: 5
    Dernier message: 20/03/2007, 13h07
  5. Super classes et sous-classes/Méthodes
    Par smag dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2005, 23h10

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