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 :

Classe interne, classe externe


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par défaut Classe interne, classe externe
    Bonjour, j'ai une question technique : voilà ce qui me pose problème :

    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
    18
     
    public class ClasseExt
    {
     Truc monTruc;
     
     void fctBidon()
     {
      monTruc.fonction(this); // ça marche ici
     }
     
     static class ClasseInterne
     {
       void fctBidonDeux()
       {
        monTruc.fonction(ClasseExt.this); // ça marche pas pcq statique, mais Pourquoi ???
       }
     } 
    }
    Je crois que je n'ai pas bien pigé ce que static implique.... Pouvez-vous m'éclairer ? Si la classe interne est statique et que la classe externe ne l'est pas, ça implique quoi ??

    Merci.

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Ca implique essentiellement que tu peux faire référence à ta classe interne de façon statique, ie dans le cadre ta classe mais hors d'un membre : le this n'a donc aucun sens, exactement de la même façon qu'il n'en n'aurait pas dans le cadre d'une méthode statique.

  3. #3
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    Citation Envoyé par Rei Ichido Voir le message
    Ca implique essentiellement que tu peux faire référence à ta classe interne de façon statique, ie dans le cadre ta classe mais hors d'un membre : le this n'a donc aucun sens, exactement de la même façon qu'il n'en n'aurait pas dans le cadre d'une méthode statique.
    Non.

    Citation Envoyé par mathieu_t Voir le message
    Je crois que je n'ai pas bien pigé ce que static implique.... Pouvez-vous m'éclairer ? Si la classe interne est statique et que la classe externe ne l'est pas, ça implique quoi ??
    Static sur un membre signifie que ce dernier appartient a une classe et non a une instance.

    Sur une inner classe, ceci implique que l'on peut accéder à ce type sans passer par une instance de l'outer classe.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class A {
        class B {}
    }
     
    class C {
        public static void main(String[] argv) {
            A.B b = new A().newB(); // obligé d'instancier un A pour instancier un B sans le static
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class A {
        static class B {}
    }
     
    class C {
        public static void main(String[] argv) {
            A.B b = new A.B(); // On peut instancier directement B
        }
    }
    Par ailleurs, le mot clé static ne peut s'utiliser que sur une inner classe, ici il est interdit de l'utiliser sur A car ca n'aurait plus aucun sens.

  4. #4
    Membre chevronné
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par défaut
    Merci pour vos réponses !

    C'est plus clair.

    Mathieu.

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

Discussions similaires

  1. classe interne classe statique
    Par Nayila dans le forum Langage
    Réponses: 5
    Dernier message: 22/01/2008, 21h22
  2. Réponses: 14
    Dernier message: 10/02/2007, 13h27
  3. [Conception] Classe interne ou externe
    Par storm_2000 dans le forum Langage
    Réponses: 3
    Dernier message: 13/01/2007, 16h05
  4. [Conception] Class interne ou externe ?
    Par TTKiBosse dans le forum Langage
    Réponses: 13
    Dernier message: 10/01/2007, 10h36
  5. Heritage de classe avec classes internes
    Par Regis.C dans le forum Langage
    Réponses: 11
    Dernier message: 27/04/2005, 12h19

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