Partage
  • Partager sur Facebook
  • Partager sur Twitter

Classes Anonymes

Sujet résolu
    26 septembre 2011 à 18:28:13

    Salut,
    Quelqu'un pourrais m'expliquer l'utilité des classes anonymes ??
    Je n'ai pas compris
    Merci :-°
    • Partager sur Facebook
    • Partager sur Twitter
      26 septembre 2011 à 22:29:10

      Salut,

      Une classe anonyme c'est une classe que tu crées à l'intérieur d'une autre sans lui donner de nom en dérivant une autre classe ou en réalisant une interface.

      Par exemple :
      SuperClasse classeAnonyme = new SuperClasse() {
      
          // Redéfinition de méthode(s)
      
      }; // ; car c'est une instruction
      


      ou bien

      Interface classeAnonyme = new Interface() {
      
          // Réalisation de l'interface (définition des méthodes
          // déclarées dans l'interface)
      
      }; // ; car c'est une instruction
      


      Le compilateur se chargera à la compilation de te créer la classe dans un fichier qui aura comme nom, le nom de la classe englobante suivi d'un $ puis d'un chiffre. Par exemple SuperClasse$1.class dans le cas de l'exemple avec la SuperClasse.
      C'est souvent utilisé lors de la réalisation d'interfaces Listener, cela évite de créer un autre fichier (ou une classe interne) juste pour un Listener qui n'a peut-être besoin que de redéfinir une méthode. Les instructions pour cette méthode sont souvent spécifiques et diffèrent selon l'évènement déclencheur.

      De plus, il faut savoir que la surcharge et la définition de méthodes sont impossibles dans une classe anonyme, cela entraîne une erreur de compilation. Et une classe anonyme qui est la réalisation d'une interface doit obligatoirement réaliser toutes les méthodes de l'interface (évidemment ^^ ).
      • Partager sur Facebook
      • Partager sur Twitter

      Classes Anonymes

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown