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 :

Classes et héritage


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut Classes et héritage
    Bonjour,

    Je reviens sur un sujet qui me tient à coeur (débuts obligent...).

    J'ai une classe abstraite MERE qui définit 5 variables protected et hérite de JPanel.
    J'ai une classe FILS qui hérite de MERE.
    J'ai une classe PETIT-FILS qui hérite de FILS.

    Dans mon code je fais:
    Cette classe FILS initialise les 5 variables de MERE et les modifie.

    J'appelle ensuite PETIT-FILS dans la même classe ou je créé l'instance FILS, et dans son constructeur je vérifie une des 5 variables. Pourtant, cette variable n'est jamais reconnue quand elle est modifiée. Par ex elle vaut false à l'initialisation, passe à true à un moment, mais PETIT-FILS la voit encore false! Comment si PETIT-FILS et FILS étaient indépendant (mais pourtant il trouve la variable en question, c'est un bon début...)

    Comment ça se fait? En passant la variable en parametre de PETIT-FILS, il la trouve bien en true, mais je vois plus l'intérêt de l'héritage là...

    Danke schön

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par Anduriel Voir le message
    Cette classe FILS initialise les 5 variables de MERE et les modifie.

    J'appelle ensuite PETIT-FILS dans la même classe ou je créé l'instance FILS, et dans son constructeur je vérifie une des 5 variables. Pourtant, cette variable n'est jamais reconnue quand elle est modifiée. Par ex elle vaut false à l'initialisation, passe à true à un moment, mais PETIT-FILS la voit encore false! Comment si PETIT-FILS et FILS étaient indépendant (mais pourtant il trouve la variable en question, c'est un bon début...)

    Comment ça se fait? En passant la variable en parametre de PETIT-FILS, il la trouve bien en true, mais je vois plus l'intérêt de l'héritage là...
    Je résume. Donc, si j'ai bien compris, tu as ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Initialisation
    Fils f = new Fils();
    PetitFils pf = new PetitFils();
    Ensuite, tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Modification
    f.setAge(24);
    Et tu veux que PetitFils prenne en compte les modifications ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pf.getAge(); // << Tu veux que ceci soit égale à 24 ?
    Oui les objets sont indépendants entre eux. Modifier l'un des champs d'une des classes ne modifiera pas la valeur de ce champ au sein des autres. Ai-je bien compris ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Anduriel Voir le message
    J'appelle ensuite PETIT-FILS dans la même classe [blah blah blah]
    Ça veut rien dire. D'abord tu nous montres le code que tu as essayé, et après seulement tu nous expliques ce que tu croyais que ça devrait faire.

    (Éventuellement dans le sens inverse, mais jamais l'un sans l'autre.
    - Le code sans explication => on devrait comprendre ce que ça fait, mais on ne va pas deviner ce qui te gêne.
    - Les explications sans code => elles ne veulent rien dire, puisque justement tu ne sais pas comment ça marche.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Désolé du retard, aucun accès en vacances!

    Oui Robin56, c'est exactement ce que tu as dit. Donc tu dis qu'il ne peut pas prendre en compte l'autre modification?

    Comment je peux procéder alors tout en gardant ces deux classes?

    Thelvin, je ne peux pas mettre tout le code c'est trop long, mais Robin 56 à très bien résumé la structure.

    Merci

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Anduriel Voir le message
    Oui Robin56, c'est exactement ce que tu as dit. Donc tu dis qu'il ne peut pas prendre en compte l'autre modification?
    Plus exactement, que quand on modifie un objet ça ne concerne que ce objet-là, pas les autres objets. Ce n'est pas une question de classe. Même s'ils étaient exactement de la même classe ça ferait pareil.

    Citation Envoyé par Anduriel Voir le message
    Comment je peux procéder alors tout en gardant ces deux classes?
    Autrement. On sait toujours pas ce que tu cherches à faire. Note : je te demande pas comment tu cherches à le faire ("j'ai une classe qui va hériter de l'autre, et comme ça elle va récupérer toutes ses données, etc !") je te demande qu'est-ce que tu cherches à faire. Elles servent à quoi tes pirouettes ?

    Citation Envoyé par Anduriel Voir le message
    Thelvin, je ne peux pas mettre tout le code c'est trop long, mais Robin 56 à très bien résumé la structure.
    Il suffisait de dire ça :

    "J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Initialisation
    Fils f = new Fils();
    PetitFils pf = new PetitFils();
     
    // Modification
    f.setAge(24);
     
    pf.getAge();  // ça ça devrait être égal à 24 non ?
    mais dans la derière lgne ça donne pas 24 ça reste à zéro. Je comprends pas pourquoi."

    Pas besoin de poster tout ton projet, seulement ce qui permet de comprendre à quoi tu penses.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Elles servent à quoi tes pirouettes ?
    A respecter un UML... Je peux très bien utiliser Fils tout court, mais la schématisation implique l'utilisation d'une autre classe (inutile je le conçois)...

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et je suppose que tu as une raison de vouloir respecter ce UML plutôt qu'en faire un autre.

    Dans ce cas, il va falloir qu'on comprenne. Explique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut

    Citation Envoyé par Anduriel Voir le message
    A respecter un UML... Je peux très bien utiliser Fils tout court, mais la schématisation implique l'utilisation d'une autre classe (inutile je le conçois)...
    je trouve idiot qu'une méthode "getAge" de PETIT-FILS renvoie l'age du FILS... ou alors je n'ai pas tout compris...

    De toute façon, si PETIT-FILS doit avoir accès aux propriétés de FILS, quelque part il va falloir un "pointeur" vers un objet de cette classe. Et donc le passer au constructeur. Et ensuite tu pourras adapter ta méthode getAge pour qu'elle renvoie l'age de FILS et pas de PETIT-FILS.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2009, 09h51
  2. Classes et Héritages
    Par valdeub dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 09h43
  3. Classe et héritage, Problème de variable
    Par skyangel dans le forum Langage
    Réponses: 4
    Dernier message: 04/11/2007, 12h11
  4. [POO] Problème de classes et héritage
    Par Kabanon dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2007, 12h37
  5. [Generics] Sur class plus héritage
    Par anthyme dans le forum C#
    Réponses: 1
    Dernier message: 24/09/2007, 23h03

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