[ALG2] TD2

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [ALG2] TD2

Message  Hana le Jeu 09 Fév 2012, 12:06

Bonjour,

Arrivé à la fin du TD je rencontre un problème qui me perturbe. Dans l'exercice 1 on nous a demandé d'écrire Personne qui est une classe abstraite donc une classe qui ne peut pas être instanciée. Mais dans l'exercice 4 et 5 il est demandé de créer une liste de Personne. Alors comment peut on faire une liste de quelque chose qui ne peut pas être instanciée ?


Dernière édition par Hana le Mer 15 Fév 2012, 16:33, édité 1 fois

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  smb le Jeu 09 Fév 2012, 12:36

Hana a écrit:Bonjour,

Arrivé à la fin du TD je rencontre un problème qui me perturbe. Dans l'exercice 1 on nous a demandé d'écrire Personne qui est une classe abstraite donc une classe qui ne peut pas être instanciée. Mais dans l'exercice 4 et 5 il est demandé de créer une liste de Personne. Alors comment peut on faire une liste de quelque chose qui ne peut pas être instanciée ?

Pour comprendre, va revoir la théorie sur l'Orienté objet et le polymorphisme
(n'oublie pas qu'un Etudiant est une Personne, qu'un Prof est une Personne) !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  Hana le Jeu 09 Fév 2012, 14:47

Merci, j'avais un peu oublié cette partie du cours Razz

Mais alors mon problème vient de quelque part d'autre. Voici ma classe RandomArrayList :

Code:

package be.esi.g35405.td2;

import java.util.ArrayList;

/**
 *
 * @author Hana
 */
public class RandomArrayList<T> extends ArrayList<T> implements RandomCollection<T> {
   
    private ArrayList<T> liste;

    RandomArrayList(){
        liste = new ArrayList<T>();
    }
   
    @Override
    public T getRandom() {
        int taille, indice;
        double random;
        random = Math.random();
        taille = liste.size();
        indice = (int)(random * 100)%taille;
        return liste.get(indice);
    }

    @Override
    public T removeRandom() {
        int taille, indice;
        double random;
        random = Math.random();
        taille = liste.size();
        indice = (int)(random * 100)%taille;
        return liste.remove(indice);
    }
   
}

Lors de l'exécution j'ai une erreur de division par 0 que je ne comprends pas du tout pourquoi, j'ai vérifié et ma liste n'est pas vide. Aurais-je fait une erreur quelque part ?

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  smb le Jeu 09 Fév 2012, 15:15

Hana, à mon avis, tu ne dois pas bien comprendre l'héritage !

Si ta classe RandomArrayList<T> hérite de ArrayList<T>, pourquoi mets-tu dans cette classe comme membre private un objet ArrayList<T> ?

En fait, la liste (attribut private) de ta classe aura toujours size() à 0 !



smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  nvs le Jeu 09 Fév 2012, 16:08

le polymorphisme ne fait plus partie de la matière de 1re en java, pour ce que j'en sais...







alien

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  smb le Jeu 09 Fév 2012, 16:16

nvs a écrit:le polymorphisme ne fait plus partie de la matière de 1re en java, pour ce que j'en sais...
alien
Effectivement ! C'est en fait une des matières de ce TD 2 dont je viens de prendre connaissance (ce qui me conforte dans mes réponses précédentes).





smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [ALG2] TD2

Message  Contenu sponsorisé Aujourd'hui à 01:06


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum