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 :

Classe Vector implémente une interface


Sujet :

Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Classe Vector implémente une interface
    salut tt le monde

    j'ai un mini projet java, que j'ai fais avec des fautes biensur :p et j'ai pas trouvé comment le corrigé!


    alors, j'ai creez une interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public interface University{
    public void addEtudiant(Etudiant e);
    public void addEtudiant(String nom,String prenom);
    public boolean contains(Etudiant e);
    public void removeEtudiant(Etudiant e);
    public void removeEtudiant(String nom,String prenom);
    public void displayEtudiants();
    public Etudiant displayEtudiant(String nom);
    }
    et il est demandé de creer une classe FSTvector qui implemente l 'interface!

    RQUE: la 1ere partie du projet consiste à ecrire une classe Etudiant avec des constructeurs.. et avec méthode boolean equals(Etudiant e)..


    voilà mon travail de la classe vector mais il ya des fautes

    je vais mettre les faute comme commentaires !!

    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
    import java.util.Vector;
     
    import sadok.Etudiant;
    import sadok.University;
     
    public abstract class FSTvector implements University {
    	private Vector<Etudiant> Etudiant = new Vector<Etudiant>();
     
    	public void addEtudiant(Etudiant e) {
    		Etudiant.add(e); // The method add(int, Etudiant) in the type Vector<Etudiant> is not applicable for the arguments (String, String)
     
    	}
     
    	public void addEtudiant(String nom,String prenom) {
    		Etudiant.add(nom, prenom);
     
     
     
    	}
    	public boolean contains(Etudiant e) {
    		return false; // Syntax error on token "e", delete this token
     
     
    		Etudiant.contains (Etudiant e);
    	}
     
    	public void removeEtudiant(Etudiant e) {
    	{
    	   Etudiant.remove (e);
       }
    	}
     
    	public void removeEtudiant(String nom,String prenom) {
    		Etudiant.remove(nom);
    		Etudiant.remove(prenom);
    	}
     
    	public void displayEtudiants() {
     
    		Etudiant.display( Etudiant );//The method display(Vector<Etudiant>) is undefined for the type Vector<Etudiant>
    	}
    	public Etudiant displayEtudiant(String nom) {
    		return null;
     
    	}
    }


    comment le corrigé?

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,

    voici la classe etudiant que j'ai utilisée :

    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
     
    public class Etudiant {
     
    	private String nom;
    	private String prenom;
     
    	public Etudiant(Etudiant e) {
    		nom = e.getNom();
    		prenom = e.getPrenom();
    	}
     
    	public Etudiant(String nom, String prenom) {
    		this.nom = nom;
    		this.prenom = prenom;
    	}
     
    	public boolean equals(Etudiant e) {
    		if (nom.equals(e.getNom()) && prenom.equals(e.getPrenom()))
    			return true;
    		else
    			return false;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
    }
    et voici FSTvector :

    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
     
    import java.util.Vector;
    import java.util.*;
     
    public abstract class FSTvector implements University {
    	private Vector<Etudiant> listEtudiants = new Vector<Etudiant>();
     
    	public void addEtudiant(Etudiant e) {
    		listEtudiants.add(e); 
    	}
     
    	public void addEtudiant(String nom,String prenom) {
    		listEtudiants.add(new Etudiant(nom, prenom));
    	}
     
    	public boolean contains(Etudiant e) {
    		return listEtudiants.contains (e);
    	}
     
    	public void removeEtudiant(Etudiant e) {
    	   listEtudiants.remove(e);
    	}
     
    	public void removeEtudiant(String nom,String prenom) {
    		listEtudiants.remove(new Etudiant(nom,prenom));
    	}
     
    	public void displayEtudiants() {
    		Enumeration<Etudiant> e = listEtudiants.elements();
    		while(e.hasMoreElements()) {
    			Etudiant et = e.nextElement();
    			System.out.println("Nom: " + et.getNom() + "     Prénom: " + et.getPrenom());
    		}
    	}
    	public Etudiant displayEtudiant(String nom) {
    		Enumeration<Etudiant> e = listEtudiants.elements();
    		while(e.hasMoreElements()) {
    			Etudiant et = e.nextElement();
    			if (et.getNom().equals(nom))
    				return et;
    		}
    		return null;
    	}
    }

    Je n'ai pas utilise la methode equals() de la classe Etudiant???
    et la methode DisplayEtudiant(String nom) est etonnante, elle devrait plutôt retourner une list d'tudiants????

    Enfin à part cela le code fonctionne.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    mercii

    oui le code fonctionne bien !!


    mm et qu'elle est la diference entre la class vector et la class arrayList!
    est ce qu'ils s'ecrivent de la meme maniere ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 633
    Points
    21 633
    Par défaut
    Bonjour,

    Citation Envoyé par ludomacho Voir le message
    Je n'ai pas utilise la methode equals() de la classe Etudiant???
    Si, dans return listEtudiants.contains (e);. Vector.contains() se base sur la méthode equals() des objets qu'il contient, comme la plupart des Collections.

    Citation Envoyé par boobaie Voir le message
    et qu'elle est la diference entre la class vector et la class arrayList!
    Vector est obsolète, ArrayList est ce qu'on utiliserait aujourd'hui.
    Ce remplacement est dû à ce que :
    - Vector est synchronisé, ce qui a un coût, alors qu'en général on en pas besoin.
    - Vector n'est pas un très bon nom. Ca nous dit rien sur son implémentation ni l'interface qu'il respecte, au contraire de ArrayList.

    Citation Envoyé par boobaie Voir le message
    est ce qu'ils s'ecrivent de la meme maniere ?
    Comprends pas. Non, Vector ne s'écrit pas comme ArrayList. Par exemple, ils n'ont pas le même nombre de lettres, et l'un des deux commence par un V et l'autre par un A.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Si, dans return listEtudiants.contains (e);. Vector.contains() se base sur la méthode equals() des objets qu'il contient, comme la plupart des Collections.
    Merci pour cette précision, je n'avais pas fait le rapprochement......

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Comprends pas. Non, Vector ne s'écrit pas comme ArrayList. Par exemple, ils n'ont pas le même nombre de lettres, et l'un des deux commence par un V et l'autre par un A.
    non je ne parle pas de l'orthographe ici!!
    mais plutôt du code java!!
    voilà j'ai presque fais copier coller le code fstvector.. et il fonctionne!
    donc je conclu que la classe Vector et la classe ArrayList s'ecrivent de la meme maniere


    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.*;
     
    import sadok.Etudiant;
    import sadok.University;
     
    public abstract class FSTarrayList implements University {
    	 private ArrayList Etudiant;
     
    	 public FSTarrayList() {
    	       Etudiant= new ArrayList();
    	}
     
    	    public void add(Etudiant e) {
    	        Etudiant.add(e);
     
    	    }
    		public void addEtudiant(String nom,String prenom) {
    			Etudiant.add(new Etudiant(nom, prenom));
    		} 
     
    	    public boolean contains(Etudiant e) {
    			return false;
     
    		}
     
    	    public void remove(Etudiant e) {
    	        Etudiant.remove(e);
    	    }
     
    	    public void removeEtudiant(String nom,String prenom) {
    			Etudiant.remove(nom);
    			Etudiant.remove(prenom);
    }
     
     
    		public void displayEtudiants() {
    			Enumeration<Etudiant> e = Etudiant.elements();
    			while(e.hasMoreElements()) {
    				Etudiant et = e.nextElement();
    				System.out.println("Nom: " + et.getNom() + "     Prénom: " + et.getPrenom());
    			}
    		}
    		public Etudiant displayEtudiant(String nom) {
    			Enumeration<Etudiant> e = Etudiant.elements();
    			while(e.hasMoreElements()) {
    				Etudiant et = e.nextElement();
    				if (et.getNom().equals(nom))
    					return et;
    			}
    			return null;
    		}}

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Points : 293
    Points
    293
    Par défaut
    Citation Envoyé par boobaie Voir le message
    non je ne parle pas de l'orthographe ici!!
    mais plutôt du code java!!
    voilà j'ai presque fais copier coller le code fstvector.. et il fonctionne!
    donc je conclu que la classe Vector et la classe ArrayList s'ecrivent de la meme maniere
    C'est parce qu'ils implémentent tous les deux l'interface "List". Ils exposent donc tous les deux les mêmes méthodes. Tu comprends maintenant l'intérêt d'une interface. On peut écrire du code qui ne dépend pas de l'implémentation.

    Mathieu

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    oui merci!!

    plus j'apprends en java plus ça m’intéresse ^__^

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Influenza Voir le message
    C'est parce qu'ils implémentent tous les deux l'interface "List". Ils exposent donc tous les deux les mêmes méthodes. Tu comprends maintenant l'intérêt d'une interface. On peut écrire du code qui ne dépend pas de l'implémentation.

    Mathieu
    ça sera la meme chose pour les hashSet et les treeSet.. ?

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    Tout à fait, HashSet et TreeSet implémentent l'interface Set.

    Quand tu veux connaître des informations sur une classe du JDK, le plus simple est d'utiliser la javadoc qui te permet d'avoir les différentes informations d'une classe.

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 633
    Points
    21 633
    Par défaut
    Citation Envoyé par boobaie Voir le message
    non je ne parle pas de l'orthographe ici!!
    mais plutôt du code java!!
    voilà j'ai presque fais copier coller le code fstvector.. et il fonctionne!
    donc je conclu que la classe Vector et la classe ArrayList s'ecrivent de la meme maniere
    D'accord. "S'écrire pareil" n'est pas l'expression juste pour ça. On dirait plutôt qu'on peut remplacer l'un par l'autre et que ça marche pareil.

    Il reste que même s'il fait le même travail, Vector est un petit peu moins efficace que ArrayList.

    Citation Envoyé par boobaie Voir le message
    ça sera la meme chose pour les hashSet et les treeSet.. ?
    Eh bien justement non. C'est vrai qu'ils implémentent tous les deux l'interface Set et qu'on peut donc utiliser sur eux tout ce que permet l'interface Set. Mais ils imposent des conditions, et ce ne sont pas les mêmes.

    TreeSet impose que tous les objets qu'on met dedans implémentent Comparable et le fassent bien. Ou alors il impose d'être construit avec un Comparator qui saura bien comparer ces objets. Si ces conditions ne sont pas respectées, ça ne marchera pas.

    HashSet impose seulement que les méthodes equals() et hashCode() des objets qu'on met dedans, soient cohérentes. Ce qui est le cas par défaut.

Discussions similaires

  1. Classe fille implémentant une interface d'une classe mère
    Par Ccckris dans le forum Architecture
    Réponses: 1
    Dernier message: 05/03/2014, 14h52
  2. Classe java implémente une interface
    Par chercheur111 dans le forum Général Java
    Réponses: 5
    Dernier message: 13/04/2012, 18h57
  3. liste des classes qui implémentent une interface
    Par Oussema86 dans le forum Général Java
    Réponses: 6
    Dernier message: 13/12/2010, 17h09
  4. Trouver classe qui implémente une interface
    Par matdur dans le forum C#
    Réponses: 6
    Dernier message: 25/06/2009, 11h14
  5. Réponses: 3
    Dernier message: 03/10/2008, 12h45

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