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

Java Discussion :

Ajouter un élément dans une liste chainée.


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Ajouter un élément dans une liste chainée.
    Bonjour,

    J'ai un petit programme avec une erreur, et ça fait 2 jour, que je seche !
    voici le programme :
    public void addLast(monomial m)
    {
    fin.GetSuiv() = new maillon(m,fin.GetSuiv()); //Ici, il dit qu il a erreur de type.
    fin = fin.GetSuiv();
    }
    Voici l'erreur à la compilation :
    required: variable
    found : value
    fin.GetSuiv() = new maillon(m,fin.GetSuiv()); //Ici, il dit qu il a erreur de type.
    Si quelqu'un veut bien m'aider à comprendre mon erreur et surtout comment le resoudre.
    Merci d'avance pour votre lecture.

    PS. Je suis débutant en Java.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Points : 321
    Points
    321
    Par défaut
    fin.getSuiv() renvoie un objet et non une variable
    Tu devrais plutot définir une méthode fin.setSuiv(TonObjet o) et la ligne deviendrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fin.setSuiv(new maillon(m,fin.GetSuiv()));
    bien sur dans la méthode setSuiv ressemblerai à un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void setSuiv(TonObjet o){
      suiv=o;
    }

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Pourquoi réinventer la roue?
    Si c'est pour faire une exercice, alors:
    fin.GetSuiv() = new maillon(m,fin.GetSuiv());
    1- Si tu as lu un tutoriel java, ça doit être préciser que pour la nomination (ce n'est pas obligatoire mais c'est mieux):
    Le nom d'une class doit commencer par une majuscule.
    Le nom d'une méthode doit commencer par une minuscule.
    2- fin.GetSuiv() retourne une valeur ou fait une traitement donc tu ne peux pas l'affecter une valeur. On ne peut affecter une valeur qu'à une variable.

    A+.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci à tous les deux.
    Mais je crois qu'une petite explication s'impose :

    maillon : c'est une classe Java, qui construit des objets, maillon.
    monomial : c'est une classe Java, qui construit des objets, monome - comme les polynomes.

    Ce que je veux faire, c'est ajouter un maillon à ma liste, ici en rouge!



    this, n'a qu'un seul champs "fin", qui pointe toujours vers la fin de la liste.
    C'est pour ça, j'ecris : this.fin.GetSuiv() = new maillon(m,this.fin.GetSuiv();

    @Druzy : Je ne pense pas que ça vaut la peine de créer une nouvelle methode alors que les methode GetSuiv() nous donne acces au éléments privé.

    @Andry.aime : 1- je n'ai pas lu des tutos.
    2- les nouveaux nom, le prof pense que c'est une sercharge inutile - mauvaise humeur !
    3- Je comprends, d'ailleurs, je l'avais compris avant, mais comment faire autrement !?

    Merci encore.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    1 -
    Citation Envoyé par fourize Voir le message
    @Druzy : Je ne pense pas que ça vaut la peine de créer une nouvelle methode alors que les methode GetSuiv() nous donne acces au éléments privé.
    Tu as accès pour récupérer la valeur avec la methode mais pas pour affecter une nouvelle valeur.
    2-
    Citation Envoyé par fourize Voir le message
    @Andry.aime : 1- je n'ai pas lu des tutos.
    ah, .
    3-
    Citation Envoyé par fourize Voir le message
    3- Je comprends, d'ailleurs, je l'avais compris avant, mais comment faire autrement !?
    Tu ne te donnes même pas la peine de lire un tuto et ... Si seulement tu as lu un bon, ...

    A+.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci quand même.

    c'est bizarre que dans mon livre, il pretend que cette même methode marche

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par fourize Voir le message
    Merci quand même.

    c'est bizarre que dans mon livre, il pretend que cette même methode marche
    Un livre java ou seulement algorithmique

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par fourize Voir le message
    @Druzy : Je ne pense pas que ça vaut la peine de créer une nouvelle methode alors que les methode GetSuiv() nous donne acces au éléments privé.
    Ta méthode getSuiv() te donne accée à l'objet mais pas à la variable qui pointe vers l'objet. Si tu as une variable private suiv qui pointe vers l'élément suivant, ta méthode renvoie l'objet que suiv pointe, pas suiv elle-même.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2007, 13h11
  2. Réponses: 8
    Dernier message: 27/04/2007, 14h07
  3. Réponses: 12
    Dernier message: 12/03/2007, 16h58
  4. Correction pour ajouté un élément dans une liste
    Par Rifton007 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2007, 11h09
  5. ajouter un élément dans une liste
    Par Le Mérovingien dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 02/07/2006, 17h43

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