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 :

Problème héritage et vecteur


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut Problème héritage et vecteur
    Bonjour à tous.
    Voila je débute en java et j'ai un probleme :
    Dans un projet, j'ai une classe produit, une classe film qui hérite de produit, et une classe listeProduit qui contient un vecteur de produit. Mon probleme est que mon vecteur ne contient que les attributs de produits, et non de film.
    Histoire d'etre un peu plus clair, je vais résumer le code

    classe produit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class produit() {
        private String prodNom = new String();
        private int prodPrix = 0;
    }
    classe film :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class film extends produit() {
        private String prodSupport = new String();
    }
    classe listeProduit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class listeProduit() {
        public Vector <produit> VProduit = new Vector();
    }
    Donc j'ai créé un vecteur de produit, donc c'est normal que je ne puisse pas mettre d'attributs de films dedans. Mais le problème c'est que j'ai plusieurs classes qui héritent de produit, faut-il que je fasse un vecteur pour chaque classe fille ? Y a-t-il une meilleure solution?
    J'espère avoir été assez clair!
    Merci d'avance à ceux qui me répondront.

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<? extends Produit> vProduit = new Vector();
    // les conventions de nommage n'existent pas que pour les autres

  3. #3
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    tu pourras mettre dans ton vecteur des objets qui héritent de Produit, sans problème.

    Un conseil : pourquoi ne pas faire de ta classe ListeProduit une sous-classe de Vector<Produit> ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Merci pour vos réponses. J'ai déclaré le vecteur comme vous m'avez dit. Maintenant, sans vouloir abuser de votre gentillesse, j'ai encore une question :

    pour ajouter un élément dans le vecteur (un film par exemple), ce code ne marche pas :

    code de la classe listeProduit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public Vector <? extends produit> VProduit = new Vector();
    public void ajout(film F) {
        this.VProduit.add(F)
    }
    L'erreur à la ligne this.VProduit :
    cannot find symbol
    symbol : method add(nomdupackagepackage.produit)
    location : class java.util.Vector<capture of ? extends nomdupackage.produit>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Personne n'a une idée ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Toujours personne?

  7. #7
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Tu es en quelle version de java ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Salut,
    Tu devrais utiliser Arraylist a la place de vector. Il est déconseillé d'utiliser la classe Vector au profit de Arraylist depuis longtemps (Java 1.2) !

    Une autre remarque au sujet des règles de nommage que tu utilises. En général, les nom de classes commencent par une majuscule et le noms de variables par une minuscule. Ca facilitera la relecture de ton code

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Citation Envoyé par chtig
    Tu es en quelle version de java ?
    Je suis en Java 2.0 je crois, sous NetBeans IDE 5.5

  10. #10
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Java 2 ?!? Ah ben les generics c'est pas gagné alors lol

  11. #11
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    MDR, je dirais même que rien ne va être facile !

Discussions similaires

  1. Problèmes avec les Vecteurs
    Par alsimb dans le forum C
    Réponses: 8
    Dernier message: 10/02/2007, 10h29
  2. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  3. Problème Héritage JavaScript
    Par Flavien dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/07/2006, 13h29
  4. Problème héritage CWnd
    Par ptitJP dans le forum MFC
    Réponses: 4
    Dernier message: 21/04/2006, 11h41
  5. problème avec un vecteur
    Par Mathieu.J dans le forum C++
    Réponses: 9
    Dernier message: 30/10/2005, 22h53

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