Bonjour à toute la communauté développez.net, j'epsere que vous vous portez bien.
Je tiens à m'excuser de la longueur de mon message.
Je suis débutant en programmation Java, et ce Mr Java me pose quelques soucis. Néanmoins j'aime ce que je fais , et j'ai envie de comprendre pour mieux avancer.
Je bûche actuellement sur un exercice qui concerne la création d'un carnet d'adresse et j'ai quelques questions que je vous poserai sans doute par ci par là ^^.
J'explique brièvement les consignes de l'exercice :
*Création d'un carnet d'adresse, composé de plusieurs types(connaissances, amis, famille).
*Les fiches personnes de ces types sont stockés dans un Vecteur.
*Selon les attributs déterminés dans l'exercice, la hiérarchie est la suivante : connaissances est superclasse de amis, qui est une superclasse de famille.
*il est possible d'ajouter(ds ordre alphabétique) ou supprimer une fiche à partir du nom(l'attribut) de la personne qui est saisit.
A partir de la tout est clair dans ma tête, donc en bref:
-je crée une classe carnet avec une méthode de stockage, et une méthode d'affichage de l'ensemble des fiches.
-je crée une superclasse connaissances ayant comme comportement l'affichage des caractéristiques des fiches.
-Amis hérite de connaissances et famille hérite de amis; les deux héritent de la méthode et des attributs de connaissances.
-D'après moi un carnet n'ajoute ou ne supprime pas lui même une fiche, donc je crée une classe reglages qui prendra en charge ces méthodes.
Ensuite ça se brouille.
Ma méthode d'ajout est la suivante :
J'ai passé une référence à l'objet connaissances en paramètre de ma méthode, donc j'aurai besoin de le passer lors de l'appel de la méthode dans la classe main où j'exécute le prg.
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 Vector fiches=new Vector(); public void ajout(connaissances c){ String nom=""; try { System.out.println("veuillez saisir un nom :"); nom=saisies.saisie(); //méthode de saisie importée if(nom.equals(c.nom)){ for(int i=0;i<fiches.size();i++){ //déclaration du type dobjet de mon vecteur connaissances co=(connaissances)fiches.get(i); if(c.nom.compareTo(co.nom)>0){ fiches.add(i+1,c); }}} } catch (Exception ex) { System.out.println("erreur saisie");} }
Quand j'appelle ma méthode - mesreglages.ajout(parametre); -, je passe en paramètre la référence précise d'une instance(ex : a1 qui représente ma fiche ami1), donc ma méthode ne travaille que pour cette instance, en gros je dois saisir l'attribut nom correspondant et le mettre en paramètre de ma méthode pour qu'il s'ajoute ds le Vecteur !! :/
De même si je saisis un nom différent, mais existant, de l'attribut nom de l'objet référencé en paramètre(ex : a1), rien n'est ajouté dans mon Vecteur. Double problème.
Or je souhaite que ma méthode :
-compare le nom saisi parmi tout les attributs nom de toutes mes instances fiches
-et que si ce nom existe, ajouter cette fiche dans mon Vecteur ds l'ordre alpha.
Comment appeler une méthode avec en paramètre une référence permettant de fonctionner avec n'importe quel type d'instances d'un même objet(ici connaissances), et pas justement avec une instance précise?
Je me prends la tête dessus depuis quelques jours; une aide, des éclaircissements, ou une correction pédagogique seraient appréciés !
Partager