Bonjour,

Je souhaite créer une application en java qui permette de gérer un annuaire des contacts. Pour chacun des contacts, on a son adresse postale, certains nous ont donné leur numéro de téléphone. D'autres leur adresse électronique. Enfin, pour quelques-uns, on dispose des deux.
Voici comment j'ai procédé pour la résolution du problème : je pense créer une classe abstraite Contact qui contiendra les champs privés suivants : nom, prenom, adresse. Ensuite je vais créer 3 classes qui héritent de la classe Contact.
- La classe ContactAvecTel qui contiendra le champ privé tel
- La classe ContactAvecMail qui contiendra le champ privé mail
- La classe ContactTelMail qui contiendra les champs privés tel et mail
Seulement dans le cas où un contactAvecTel nous communiquera son mail, je ne pourrai plus l'ajouter.
Alors, je me demande s'il ne fallait pas créer tout simplement une seule classe Contact qui ne sera pas abstraite et qui contiendra les 5 champs : nom, prenom, adresse, tel, mail. Donc, il faut s'attendre par exemple que pour une personne sans tél, le champ tél sera initialisé à null. Et à mon avis ceci aura des conséquences sur les fonctions de recherche notamment les critères de recherche.

Aussi pour le champ adresse, je souhaiterai ajouter le champ ville, le champ codePostale et le champ pays dans le cas où le contact est étranger. Donc le champ adresse ne contiendra que la rue, résidence, bâtiment, étage.

A noter, que je vais ajouter les contacts dans une liste. Je ne sais pas s'il faut utiliser une liste ordonnée ou une liste non ordonnée. Je ne vois pas l'intérêt d'utiliser une liste ordonnée car ici on n'a pas des chiffres. J'ai pensé à une liste ordonnée car dans les annuaires papiers les contacts sont classés par ordre alphabétique. Mais en programmation, on n'a pas besoin car on utilise des fonctions de recherches.
En ce qui concerne les fonctions :

- lireContact() -> consultation
- ajouterContact(Contact contact)
- modifierAdresse(Contact contact, String adresse, String codePostal, String ville, String pays) ->l'adresse mentionnée dans les paramètres de la fonction est la nouvelle adresse pour le premier paramètre contact qui existe déjà parmi nos contacts.
Là j'ai 3 paramètres de plus et c'est pourquoi je vous ai posé la question ci-dessus au sujet de la gestion de l'adresse postale.
- modifierTel(Contact contact, String tel)
- modiiferMail(Contact contact, String mail)
- modifierNom(Contact contact, String nom)
- modifierPrenom(Contact contact, String prenom)
- rechercherContact(String nom) -> résultat = liste de contacts
- rechercherContact(String tel) -> un seul résultat envoyé
- rechercherContact(String mail) -> un seul résultat envoyé
- rechercherContact(String mail, String tel) -> un seul résultat envoyé
- supprimerContact(Contact contact)

Je vous remercie d'avance de m'éclaircir les points qui me posent problème car je ne peux pas commencer le développement de l'application tant que la partie conception n'est pas claire pour moi.

Batman