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 :

agrégation en java


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut agrégation en java
    Bonjour j'ai une classe ligne et une classe paragraphe j'utilise l'agrégation pour afficher plusieurs ligne dans la classe paragraphe en appelant la méthode saisie e affiche de la classe ligne dans ;a classe paragraphe mais il affiche n fois la dernière ligne. Merci de m'aider à résoudre le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    import java.util.Scanner;
     
    public class Ligne {
    private String mots;
    private String fin;
    public Ligne()
    {
     
    }
     
     
    public Ligne(String mots,String fin)
    {
    this.mots=mots;
    this.fin=fin;
     
    }
    public String getMots(){
    return mots;
    }
    public void setMots(String mots) {
    this.mots = mots;
    }
    public String getFin()
    {
    return fin;
    }
    public void setFin(String fin){
    this.fin=fin;
    }
    public void saisie()
    {
     
    Scanner sc= new Scanner (System.in);
    System.out.println("Donnez le mots: ");
    this.mots=sc.nextLine();
    System.out.println("Donnez la dernière: ");
    this.fin=sc.nextLine();
     
    } 
     
     
    public void affiche()
    {
     
    System.out.println(mots+" /"+fin+"/");
     
    }
     
     
    }
    et une classe paragraphe composée de n lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.util.Scanner;
     
    public class Paragraphe {
    Scanner sc= new Scanner (System.in);
    private Ligne suiteDeLigne[];
    private int nbLigne;
     
    Ligne vers=new Ligne();
     
    public Paragraphe()
    {
    this.nbLigne=0;
    }
    public void saisie()
    {
    System.out.println("Donnez le nombre de vers: ");
    nbLigne=sc.nextInt();
    suiteDeLigne sl =new Ligne[nbLigne];
    for(int i=0;i<nbLigne;i++)
    {
    vers.saisie();
    suiteDeLigne[i]=sl;
     
    }
     
    }
     
    public void affiche()
    {
    for(int i=0;i<nbLigne;i++)
    {
    suiteDeLigne[i].affiche();
    }
    }
    public static void main(String arg[])
    {
    Paragraphe pg = new Paragraphe();
    pg.saisie();
    pg.affiche();
    }
     
     
    }

  2. #2
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Pour ce qui est de ton problème, je dirais deux choses. D'abord, ta suite de ligne devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private Ligne[] suiteDeLignes;
    là tu déclares une Ligne appelée suiteDeLigne[], pas un tableau. Ensuite, ton initialisation est bizarre. Cela devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    suiteDeLignes = new Ligne[nbLignes]
    Je ne sait pas d'où vient ce sl... enfin, je décalerais la création du vers dans la boucle, pour avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ligne vers = new Ligne();
    vers.saisie();
    suiteDeLignes[i] = vers
    Tu n'as pas besoin de l'avoir en tant que champ, mieux vaut en créer une à chaque tour de la boucle.

    Voilà voilà.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    mais je n'arrive toujours pas appeler la méthode saisie n fois et afficher n fois une ligne.
    methode saisie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void saisie()
    {
    System.out.println("Donnez le nombre de vers: ");
    nbLigne=sc.nextInt();
    suiteDeLigne=new Ligne[nbLigne];
    for(int i=0;i<nbLigne;i++)
    {
    Ligne l=new Ligne();
    l.saisie();
    suiteDeLigne[i]=l;
     
    }
    méthode affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void affiche()
    {
    for(int i=0;i<nbLigne;i++)
    {
    suiteDeLigne[i].affiche();
    }
    }
    Merci de m'aider

  4. #4
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    J'ai copié-collé ton code, avec les modifications, il compile (une fois ajouté le } manquant à la fin de la méthode "saisie"...) et donne le résultat attendu...
    Peux tu m dire ce que toi tu obtiens?
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    En fait je voulais insérer des lignes à partir de la classe paragraphe sans pour autant instance une ligne. Je l'ai finalement résolu j'ai utilisé l'agrégation en java dans la classe paragraphe.
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Ligne getLigne(){
        return l;
    }
    c'est ça qui m'a permis de faire un link entre les deux classe sans utiliser l'héritage.
    Merci pour ta disponibilité

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

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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