Anonymus59
-
Modifié par Whismeril le 22/06/2015 à 06:49
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024
-
22 juin 2015 à 19:23
Bonjour,
je commence à apprendre le langage JAVA et je me suis lancé dans un petit exercice pour commencer à pratiquer un peu.
le but de l'exercice est de créer un petit carnet d'adresse avec des contacts (nom, prénom, date de naissance, adresse mail, adresse postal, code postal, ville et téléphone) ainsi que des groupes (nom du groupe, liste de contact et description du groupe).
On pourra créer/modifier/supprimer un groupe
créer/modifier/supprimer un contact
ajouter des contacts à un groupe
Il faudrait aussi créer des contrôles sur le téléphone (10 chiffres obligatoires) et le code postale (5 chiffres obligatoires)
Le constructeur doit par défaut mettre le n° de téléphone : 00 00 00 00 00
Le code postal : 00 000
Le nom : to be name
Le nom du groupe : group.
Pour cela, j'ai crée trois classes (contact, groupe et main)
voici le contenu de chacunes d'elle :
La classe contact :
public class Contact {
// Informations du contact
private String nom;
private String prenom;
private int datedenaissance;
private String adressemail;
private String adressepostal;
private int codepostal;
private String ville;
private int telephone;
//Constructeur par paramètres
public Contact(String nom, String prenom, DATE datedenaissance, String adressemail, String adressepostal, int codepostal, String ville, int telephone)
{
//Initialisation des attributs
//TODO
this.nom = nom;
this.prenom = prenom;
this.datedenaissance = string;
this.adressemail = adressemail;
this.adressepostal = adressepostal;
this.codepostal = string2;
this.ville = ville;
this.telephone = string3;
}
private void setadressepostal(String adressepostal2) {
// TODO Auto-generated method stub
}
//Pour récupérer le nom
public String getNom() {
return nom;
}
//pour modifier le nom
public void setNom(String nom) {
this.nom = nom;
}
//Pour récupérer le prenom
public String getPrenom() {
return prenom;
}
//pour modifier le prenom
public void setPrenom(String prenom) {
this.prenom = prenom;
}
//Pour récupérer la date de naissance
public int getDateDeNaissance() {
return datedenaissance;
}
//pour modifier la date de naissance
public void setDateDeNaissance(int datedenaissance) {
this.datedenaissance = datedenaissance;
}
//Pour récupérer l'adresse mail
public String getAdressemail() {
return adressemail;
}
//pour modifier l'adresse mail
public void setAdressemail(String adressemail) {
this.adressemail = adressemail;
}
//Pour récupérer le code postal
public int getCodepostal() {
return codepostal;
}
//pour modifier le code postal
public void setCodepostal(int codepostal) {
this.codepostal = codepostal;
}
//Pour récupérer la ville
public String getVille() {
return ville;
}
//pour modifier la ville
public void setVille(String ville) {
this.ville = ville;
}
//Pour récupérer le téléphone
public int getTelephone() {
return telephone;
}
//pour modifier le téléphone
public void setTelephone(int telephone) {
this.telephone = telephone;
}
//Affiche la chaine de caractère qui décrit l'objet
public String toString()
{
return "nom : " + nom + "\n" +
"prenom : " + prenom + "\n" +
"datedenaissance : " + datedenaissance + "\n" +
"adressemail : " + adressemail + "\n" +
"adressepostal : " + adressepostal + "\n" +
"codepostal : " + codepostal + "\n" +
"ville : " + ville + "\n" +
"telephone : " + telephone + "\n" ;
}
//Création d'un contact
public void ajouterContact(Contact c){
//TODO
}
}
La classe groupe :
public class Groupe {
// Informations du groupe
private String nomdugroupe;
private String listedecontact;
private String descriptiondugroupe;
public Groupe(String nomdugroupe, String listedecontact, String descriptiondugroupe)
{
//Initialisation des attributs
this.setnomdugroupe(nomdugroupe);
this.setlistedecontact(listedecontact);
this.setdescriptiondugroupe(descriptiondugroupe);
}
//Pour récupérer le nom du groupe
public String getnomdugroupe() {
return nomdugroupe;
}
//pour modifier le nom du groupe
public void setnomdugroupe(String nomdugroupe) {
this.nomdugroupe = nomdugroupe;
}
//Pour récupérer la liste de contact
public String listedecontact() {
return listedecontact;
}
//Pour modifier la liste de contact
public void setlistedecontact(String listedecontact) {
this.listedecontact = listedecontact;
}
//Pour récupérer la descriptiondugroupe
public String descriptiondugroupe() {
return descriptiondugroupe;
}
//Pour modifier la descriptiondugroupe
public void setdescriptiondugroupe(String descriptiondugroupe) {
this.descriptiondugroupe = descriptiondugroupe;
}
//Affiche la chaine de caractère qui décrit l'objet
public String toString()
{
return "nomdugroupe : " + nomdugroupe + "\n" +
"listedecontact : " + listedecontact + "\n" +
"descriptiondugroupe : " + descriptiondugroupe + "\n" ;
}
}
et la classe main :
public class Main {
public static void main(String[] args) {
Contact c1 = new Contact ("Pierre", "Defrance", "16/06/1994", "***@***", "6 rue de paris", "75000", "Paris", "0600000000");
c1.lancer
Groupe Contact g = new Groupe("Mon Groupe");
g.ajouterContact(c1);
supprimerContact(c1);
modifierContact(c1);
}
private static void supprimerContact(Contact c1) {
// TODO Auto-generated method stub
}
private static void modifierContact(Contact c1) {
// TODO Auto-generated method stub
}
}
Malheureusement je n'obtiens pas ce que je souhaite quand je compile mon code. J'ai des erreurs de compilation dans ma classe main au niveau du constructeur. J'obtiens le message d'erreur suivant :
The constructor Contact(String, String, DATE, String, String, int, String, int) refers to the missing type DATE
Et quand je lance "par force" mon programme, il m'envois le formulaire pour rentrer les champs d'un contact en premier alors que je voudrais qu'il commence par lancer le menu des choix (que voulez vous faire ? ajouter, modifier, supprimer un contact ? un groupe?) et ensuite j'aimerais pouvoir exécuter mes choix ..
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024931 22 juin 2015 à 06:53
Bonjour, j'ai édité ton message pour corriger la coloration syntaxique, voir ici la précision du langage dans la coloration syntaxique.
Pour ton problème, je ne fait pas de java, mais le message dit que le type DATE n'existe pas. Les autres types que tu as utilisés s'écrivent avec une seule majuscule, tu devrais essayer Date.
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 20243 015 22 juin 2015 à 08:01
Bonjour,
Et oui, dans les conventions de nommages les nom de classes sont en CamelCase, il n'y a que les constantes et enum qui seront tout en majuscules.
Donc ce sera bien le type
Date
, qu'il faudra toutefois importer avec
import java.util.Date;
Remarque : il faudra quand même être cohérent dans son utilisation parce que pour l'instant c'est un peu n'importe quoi, tu mélanges
Bonjour,
merci pour ta réponse. J'ai corrigé mon code mais cette fois ci j'obtiens le message d'erreur suivant :
-> Type mismatch: cannot convert from Date to int
voici ma classe contact :
import java.util.Date;
public class Contact {
// Informations du contact
private String nom;
private String prenom;
private int datedenaissance;
private String adressemail;
private String adressepostal;
private int codepostal;
private String ville;
private int telephone;
//Constructeur par paramètres
public Contact(String nom, String prenom, Date datedenaissance,String adressemail, String adressepostal, int codepostal, String ville, int telephone)
{
//Initialisation des attributs
//TODO
this.nom = nom;
this.prenom = prenom;
this.datedenaissance = datedenaissance;
this.adressemail = adressemail;
this.adressepostal = adressepostal;
this.codepostal = codepostal;
this.ville = ville;
this.telephone = telephone;
}
//Pour récupérer le nom
public String getNom() {
return nom;
}
//pour modifier le nom
public void setNom(String nom) {
this.nom = nom;
}
//Pour récupérer le prenom
public String getPrenom() {
return prenom;
}
//pour modifier le prenom
public void setPrenom(String prenom) {
this.prenom = prenom;
}
//Pour récupérer la date de naissance
public int getDateDeNaissance() {
return datedenaissance;
}
//pour modifier la date de naissance
public void setDateDeNaissance(int datedenaissance) {
this.datedenaissance = datedenaissance;
}
//Pour récupérer l'adresse mail
public String getAdressemail() {
return adressemail;
}
//pour modifier l'adresse mail
public void setAdressemail(String adressemail) {
this.adressemail = adressemail;
}
//Pour récupérer le code postal
public int getCodepostal() {
return codepostal;
}
//pour modifier le code postal
public void setCodepostal(int codepostal) {
this.codepostal = codepostal;
}
//Pour récupérer la ville
public String getVille() {
return ville;
}
//pour modifier la ville
public void setVille(String ville) {
this.ville = ville;
}
//Pour récupérer le téléphone
public int getTelephone() {
return telephone;
}
//pour modifier le téléphone
public void setTelephone(int telephone) {
this.telephone = telephone;
}
//Affiche la chaine de caractère qui décrit l'objet
public String toString()
{
return "nom : " + nom + "\n" +
"prenom : " + prenom + "\n" +
"datedenaissance : " + datedenaissance + "\n" +
"adressemail : " + adressemail + "\n" +
"adressepostal : " + adressepostal + "\n" +
"codepostal : " + codepostal + "\n" +
"ville : " + ville + "\n" +
"telephone : " + telephone + "\n" ;
}
//Création d'un contact
public void ajouterContact(Contact c){
//TODO
}
}
et ma classe main me donne aussi une erreur de compilation qui est la suivante :
The constructor Contact(String, String, String, String, String, String, String, String) is undefined
voici le code :
public class Main {
public static void main(String[] args) {
Contact c1 = new Contact ("Pierre", "Defrance", "16/06/1994", "***@***", "6 rue de Paris", "75000", "Paris", "0600000000");
c1.lancer
Groupe Contact g = new Groupe("Mon Groupe");
g.ajouterContact(c1);
supprimerContact(c1);
modifierContact(c1);
}
private static void supprimerContact(Contact c1) {
// TODO Auto-generated method stub
}
private static void modifierContact(Contact c1) {
// TODO Auto-generated method stub
}
}
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 20243 015 22 juin 2015 à 19:23
Je te renvoie à ma remarque : "tu mélanges private int datedenaissance; DATE datedenaissance et this.datedenaissance = string;"
Si tu utilises un type Date c'est de bout en bout, dans ton main, dans ton constructeur et dans tes attributs.
Si tu changes de type en cours de route il faut faire explicitement les conversions.
22 juin 2015 à 08:01
Et oui, dans les conventions de nommages les nom de classes sont en CamelCase, il n'y a que les constantes et enum qui seront tout en majuscules.
Donc ce sera bien le type , qu'il faudra toutefois importer avec
Remarque : il faudra quand même être cohérent dans son utilisation parce que pour l'instant c'est un peu n'importe quoi, tu mélanges et !
À toutes fins utiles, de la documentation :
https://docs.oracle.com/javase/8/docs/api/java/util/Date.html
Modifié par Anonymus59 le 22/06/2015 à 10:28
merci pour ta réponse. J'ai corrigé mon code mais cette fois ci j'obtiens le message d'erreur suivant :
-> Type mismatch: cannot convert from Date to int
voici ma classe contact :
et ma classe main me donne aussi une erreur de compilation qui est la suivante :
The constructor Contact(String, String, String, String, String, String, String, String) is undefined
voici le code :
22 juin 2015 à 19:23
Si tu utilises un type Date c'est de bout en bout, dans ton main, dans ton constructeur et dans tes attributs.
Si tu changes de type en cours de route il faut faire explicitement les conversions.