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

avec Java Discussion :

Liste d'Objet d'une Classe


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut Liste d'Objet d'une Classe
    Bonjour à tous,

    Voila, je viens juste de me mettre à java. J'avais l'habitude de programmer en delphi du coup j'ai plus mes repères et je bute sur la creation de ma premiere classe.

    Voici le code:
    a) Classe Valeur (a priori ok):
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public class Valeur {
        private String Date_;
        private float Vstart;
        private float Vmin;
        private float Vmax;
        private float Vend;
        private float Vmoy;
        private long Vol;
     
        public Valeur (){
        Date_="01/01/1900";
        Vstart=0.0f;
        Vmin=0.0f;
        Vmax=0.0f;
        Vend=0.0f;
        Vmoy=0.0f;
        Vol=0;
        }
     
     public Valeur (String date, float startV, float minV, float maxV, float endV, long volume){
        Date_=date;
        Vstart=startV;
        Vmin=minV;
        Vmax=maxV;
        Vend=endV;
        Vmoy=(minV+maxV)/2;
        Vol=volume;
        }   
     
     public String get_date()
     {
     return Date_;
     }
     
     public float get_start_v()
     {
     return Vstart;
     }
     
     public float get_min_v()
     {
     return Vmin;
     } 
     
     public float get_max_v()
     {
     return Vmax;
     } 
     
     public float get_end_v()
     {
     return Vend;
     } 
     
     public float get_moy_v()
     {
     return Vmoy;
     }
     
     public float get_norm_v()
     {
     return Vnorm;
     }
     
     public long get_volume()
     {
     return Vol;
     } 
    }
    b) Classe Action (Qui pose probleme):
    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.awt.List;
    import java.util.LinkedList;
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     *
     * @author TOM
     */
    public class Action {
    private String Name_;
    private List<Valeur> list = new LinkedList<Valeur>();
    
    //Constructeur par défaut
      public Action(String name){
          list = Null;
          Name_=name;
      }
    
      public void addValeur(String date, float startV, float minV, float maxV, float endV, long volume){
        Valeur Val = new Valeur(date, startV, minV, maxV, endV, volume);
        list.add(Val); 
       }
      
       public String DateFirstVal()
      {
        String Date="";
        if (list.isEmpty()==false)
        {
        list.get(0).get_date();   
        }
        else
        {
        Date="No Date";   
        }
        return Date;    
      } 
      
    }
    La classe action contient un nom et une liste de valeur de la calsse Valeur.
    J'ai donc besoin de créer dans cette classe une liste d'objet Valeur et c'est là que je coince.
    J'ai essayé de chercher sur le net sans succés ...

    Est ce que quelqu'un peut me dire ce qui ne va pas dans mon code ?
    BetBeans me sousligne private List<Valeur> list = new LinkedList<Valeur>(); avec le commentaire "Type List dosn't take parameter".
    Après il n'aime pas non plus . comment on initialise une liste null ?

    Je vous remercie par avance ....

    Dereck

  2. #2
    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 Dereck07 Voir le message
    Est ce que quelqu'un peut me dire ce qui ne va pas dans mon code ?
    BetBeans me sousligne private List<Valeur> list = new LinkedList<Valeur>(); avec le commentaire "Type List dosn't take parameter".
    Ça c'est surtout la faute de Java -_-°.

    Il ne fallait pas mettre
    mais
    Les deux n'ont absolument rien à voir, et celui que tu voulais, c'est java.util.List.

    Citation Envoyé par Dereck07 Voir le message
    Après il n'aime pas non plus . comment on initialise une liste null ?
    Sans majuscule -_-°.
    En Java null est un mot-clé et les mots-clés n'ont pas de majuscule.

    ... Mais bon, tu ne devrais pas la mettre à null. Elle serait déjà à null par défaut, si tu ne lui avait rien assigné. Or tu lui as assigné new LinkedList<Valeur>() quand tu l'as déclarée. C'est donc que tu voulais qu'elle soit autre chose que null, alors ça ne sert à rien de la mettre à null tout de suite après -_-°. Il faut choisir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    Merci thelvin
    La situation c'est nettement ammélioré. J'ai plus d'erreur mais encore un petit warring.
    Toujours sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List<Valeur> list = new LinkedList<Valeur>();
    Netbeans me dit "redundant type agruments in new expression (use diamond operator instead)."
    T'as une idée de ce que ca veut dire ?

    Pour la list null en faite je veux simplement qu'a ca création la liste soit vide.
    Si je comprends bien pour faire cela j'implemente le constructeur comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Action {
    private String Name_;
    private List<Valeur> list = new LinkedList<Valeur>();
     
    //Constructeur par défaut
      public Action(String name){
          Name_=name;
      }
    //...
    C'est correct ? (list est bien créé bien qu'il ne soit pas dans le constructeur)

    Dereck

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    C'est bon j'ai remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List<Valeur> list = new LinkedList<>();
    sur le net j'ai trouvé une explication:
    The diamond operator in java 7 allows code like the following:
    List<String> list = new LinkedList<>();

    However in Java 5/6, I can simply write:
    List<String> list = new LinkedList();
    et
    The diamond operator (<>) removes the need for explicit type arguments in constructor calls to generic classes, thereby reducing visual clutter. For example:
    List<?> list = new ArrayList<>();

    The compiler infers the type on the right side. So if you have a list of ?, the compiler will infer a list of Object.
    Merci

    Dereck

  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 Dereck07 Voir le message
    Pour la list null en faite je veux simplement qu'a ca création la liste soit vide.
    Si je comprends bien pour faire cela j'implemente le constructeur comme ceci:

    C'est correct ? (list est bien créé bien qu'il ne soit pas dans le constructeur)
    Oui. Les déclarations de variables d'instance s'exécutent avant le constructeur, mais s'exécutent chaque fois qu'on appelle le constructeur.

    Et une nouvelle liste est toujours créée vide si on ne lui demande pas de contenir quelque chose à sa création.

    Citation Envoyé par Dereck07 Voir le message
    C'est bon j'ai remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List<Valeur> list = new LinkedList<>();
    Excellent.
    Comme cela ne marche que depuis Java 7, que beaucoup de gens utilisent encore Java 6 pour commencer, et que la syntaxe Java 6 reste correcte bien que redondante, je ne t'ai pas fait de remarque là-dessus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    Je crois que j'avais fermé le sujet un peu rapidement.
    Ma fonction DateFirstVal() ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       public String DateFirstVal()
      {
        String Date="";
        if (list.isEmpty()==false)
            {
            list.get(0).get_date();
            }
            else
            {
            Date="No Date";   
            }
        return Date;    
      }
    Je sais que la list n'est pas vide car la fonction ne retoune pas "No Data" mais un string vide.

    La maniere dont j'essaie d'acceder à l'objet ne dois pas être bonne car ce bout de code retourne bien "date":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Valeur Vt= new Valeur("date", 1.0f, 1.0f, 1.0f, 1.0f, 1l);
    s=Vt.get_date();
    System.out.println("s");
    Normalement list contient des Objet de la classe Valeur.
    Comment je fais pour acceder à un objet de la liste ?

    Dereck

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

Discussions similaires

  1. OO et liste des objets d'une classe.
    Par alainbb dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2011, 17h35
  2. list d'objet dans une classe
    Par wadcyr8_197 dans le forum C++
    Réponses: 10
    Dernier message: 04/07/2007, 15h34
  3. [POO] import d'objet dans une classe
    Par wdionysos dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2006, 21h05
  4. Réponses: 4
    Dernier message: 08/03/2006, 19h07
  5. Réponses: 19
    Dernier message: 02/02/2006, 23h30

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