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

Agents de placement/Fenêtres Java Discussion :

Différence entre "a un JFrame" et "est un JFrame"


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 132
    Par défaut Différence entre "a un JFrame" et "est un JFrame"
    Bonjour à tous !

    J'aimerai bien connaitre les différences fondamentales entre les 2 codes suivants :
    1. Code 1
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      public class maFrame extends JFrame
      {
         //Création complète de la fenêtre maFrame 
         //Et le reste du code ...
      }
    2. Code 1
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
       
      public class X
      {
         private JFrame maFrame;
         //Création de la fenêtre
         maFrame = new JFrame();
         //et puis le reste de la fenêtre, par exemple dans une méthode makeFrame()...
       
      //Et le reste du code ...
      }


    Quels sont les avantages / inconvénients de l'un par rapport à l'autre ?
    Ces 2 méthodes sont-elles équivalentes ? Si pas (ce que je pense...) quelqu'un pourrait-il me donner un exemple de chose faisable avec un code et pas par l'autre ? (c'est surement un exemple de ce type qui pourra m'aider à comprendre la différence fondamentale entre ces 2 choses...)

    Merci à tous !

  2. #2
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Dans la première version tu peux ajouter des fonctionnalités à ceux proposées par la classe JFrame alors que dans le deuxième cas, tu ne peux que les appeler.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    La première s'appelle l'héritage.

    La seconde s'appelle l'encapsulation.

    P.S. enlève tes blockquotes

  4. #4
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 132
    Par défaut
    Merci pour vos réponses ! (j'ai enlevé les blocquotes )

    Je sais qu'il s'agit de l'héritage pour la première, et puis qu'il s'agit d'encapsulation, je rajouterai même qu'il s'agit de composition ... Mais bon ... Ma question (partiellement répondue par "on sait rajouter des fonctionnalités) est : sait-on faire quelque chose avec la première méthode qu'on ne sait pas faire avec la deuxième ? (c'est mon sentiment : faire public class MaFenetre extends JFrame{...} est "plus fort" que public class X{private JFrame maFenetre; ...} , mais j'aimerai avoir une réelle confirmation de cela ... et un exemple pour l'appuyer ...)

    Merci à vous !

    [EDIT] Et de plus ... Est-ce que l'une ou l'autre méthode de codage est "plus propre" ? Plus conseillée, d'un point de vue clarté du code ? Et d'un point de vue maintenance ?

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En général on préfère la délégation (aka composition dans ce cas) , tout simplement car tu n'as aucun besoin de redéfinir le comportement intrinsèque d'une JFrame, so let il live...
    L'héritage ne soit être utilisé que si l'on veut ajouter un comportement spécifique à un objet, ou dans le cas où l'on doit faire avec des mécanismes d'abstraction.
    Grosso merdo redéfinir une JFrame je n'en vois pas trop l'utilité.
    Par contre pour un JComponent celà peut être utile si l'on veut en customiser le rendu (redéfinition des méthode telles que paintComponent ou paintBorder).

    Donc si tu n'as pas un besoin impérieux de redéfinir une des méthodes d'un objet, mieux vaut utiliser la délégation

  6. #6
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Je pense que la question c'est : vas-tu utiliser plusieurs instances de ta JFrame dans ton application ?
    Et encore dans ce cas tu peux utiliser une méthode qui construit ta fenêtre.

    Ensuite, as-tu besoin de différencier ta JFrame parmi d'autres n'ayant pas les mêmes spécificités ? (utilisation du instanceof)

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Différence entre %STR et %QUOTE
    Par fafabzh6 dans le forum Macro
    Réponses: 10
    Dernier message: 14/03/2011, 17h43
  3. Différence entre Jpanel, JFrame, Frame, Panel
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 12/06/2006, 22h51
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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