Appel en JAVA
Résolu/Fermé
yosri.tunisia
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
hafidodido Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
hafidodido Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pourriez vous m'aider a règler le problème de ce programme :
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
code=c;
prix_unitaire=p;
}
public article(int c, double p, String m){
article(c,p);
marque=m;
}
Je trouve une erreur comme suit:
JAVA\article.java:13: cannot find symbol
symbol : method article(int,double)
location: class papeterie.article
article(c,p);
Pourriez vous m'aider a règler le problème de ce programme :
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
code=c;
prix_unitaire=p;
}
public article(int c, double p, String m){
article(c,p);
marque=m;
}
Je trouve une erreur comme suit:
JAVA\article.java:13: cannot find symbol
symbol : method article(int,double)
location: class papeterie.article
article(c,p);
A voir également:
- Appel en JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Eclipse java - Télécharger - Langages
10 réponses
Slt
voila la correction
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
code=c;
prix_unitaire=p;
}
public article(int c, double p, String m){
this(c,p);
marque=m;
}
}
parce que vous appelez le constructeur de la classe
voila la correction
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
code=c;
prix_unitaire=p;
}
public article(int c, double p, String m){
this(c,p);
marque=m;
}
}
parce que vous appelez le constructeur de la classe
si tu veux etre plus simple :
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
this.code=c;
this.prix_unitaire=p;
}
public article(int c, double p, String m){
this.code=c;
this.prix_unitaire=p;
this.marque=m;
}
public class article {
protected int code;
protected String marque;
protected double prix_unitaire;
public article(int c, double p){
this.code=c;
this.prix_unitaire=p;
}
public article(int c, double p, String m){
this.code=c;
this.prix_unitaire=p;
this.marque=m;
}
Normale que ça ne marche pas et en plus le code est lourd car tu mets deux constructeurs alors qu'un seul aurait suffit.
En effet tu mets directement article(c,p); or article n'est pas une fonction mais le constructeur de ta classe article et ne peut être utilisé que pour créer un nouvel objet "article" via le code "new article(val1,val2);"
En effet tu mets directement article(c,p); or article n'est pas une fonction mais le constructeur de ta classe article et ne peut être utilisé que pour créer un nouvel objet "article" via le code "new article(val1,val2);"
Pour appuyer la remarque de "Marco La Baraque", j'irai plus loin en disant au contraire qu'on sait très bien ce que tu as voulu faire ; les noms des propriétés sont suffisamment explicites pour savoir qu'il s'agit d'articles caractérisés par un code, un prix unitaire, et optionellement une marque (certains articles n'ont pas de marque). Tu ne peux pas dire qu'il n'est pas nécessaire juste comme ça... il est évident que seule une analyse du problème peut t'aider à savoir si oui ou non tu as besoin du constructeur sans la "marque"... même si utiliser "null" lors de l'appel du constructeur complet peut faire l'affaire.
Salut, on ne parle pas d'affichage mais de l'état d'un objet à un moment donné. Il est évident que lors de l'affichage, on testera si la valeur de la propriété est nulle pour ne pas afficher "null". Ce que je voulais signifier est l'appel du constructeur complet à la place du constructeur à deux arguments (sans la marque) => utiliser le constructeur complet en passant "null" pour la marque revient à l'identique que d'appeler le constructeur sans la marque puisque la propriété "marque" n'est jamais initialisée autrement.
Ensuite je ne suis pas d'accord avec ta remarque : Null signifie "non défini" tandis qu'une chaîne vide signifie une chaine vide. Si tu as des notions en bases de données tu verras que la distinction est très importante, d'ailleurs c'est lors de la définition d'un champ qu'on doit décider si ce champ doit obligatoirement accepter une valeur ou pas forcément. Une chaîne vide est une valeur et il est inutile de dépenser la création qu'un objet String plutôt que de laisser une variable sans valeur (pas d'objet, donc pas d'emplacement mémoire).
Ensuite je ne suis pas d'accord avec ta remarque : Null signifie "non défini" tandis qu'une chaîne vide signifie une chaine vide. Si tu as des notions en bases de données tu verras que la distinction est très importante, d'ailleurs c'est lors de la définition d'un champ qu'on doit décider si ce champ doit obligatoirement accepter une valeur ou pas forcément. Une chaîne vide est une valeur et il est inutile de dépenser la création qu'un objet String plutôt que de laisser une variable sans valeur (pas d'objet, donc pas d'emplacement mémoire).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
slt,
Si vous avez lit bien les réponses, je pense que la mienne est la réponse que vous avez besoin d'après l'enoncé.
et je l'ai compilé avec aucun erreur.
Si vous avez lit bien les réponses, je pense que la mienne est la réponse que vous avez besoin d'après l'enoncé.
et je l'ai compilé avec aucun erreur.
Bonsoir Hafidodido,
Je suis d'accord, ton code est la réponse à la question.
@Tsou : Ton code est peut-être "plus simple", mais il est moins bien que celui de Hafidodido car tu n'a pas de factorisation de code.
@Arth : Désolé, mais cette fois je ne suis pas tout à fait d'accord avec toi :). Je ne comprends pas pourquoi tu dis que le code est plus lourd parce qu'il y a deux constructeurs. Dans son exemple il ne montre l'utilisation que d'un seul, mais peut-être a-t-il besoin du second dans des autres classes. On ne peut donc pas juger de ce critère à cause du peu de visibilité qu'on a.
@yosri.tunisia : Pas de souci si tu as besoin d'aide, je pense qu'il y a quelques gens qui sont assez compétents pour pouvoir t'aider. N'hésite pas à poster si tu es bloqué.
Cordialement,
Je suis d'accord, ton code est la réponse à la question.
@Tsou : Ton code est peut-être "plus simple", mais il est moins bien que celui de Hafidodido car tu n'a pas de factorisation de code.
@Arth : Désolé, mais cette fois je ne suis pas tout à fait d'accord avec toi :). Je ne comprends pas pourquoi tu dis que le code est plus lourd parce qu'il y a deux constructeurs. Dans son exemple il ne montre l'utilisation que d'un seul, mais peut-être a-t-il besoin du second dans des autres classes. On ne peut donc pas juger de ce critère à cause du peu de visibilité qu'on a.
@yosri.tunisia : Pas de souci si tu as besoin d'aide, je pense qu'il y a quelques gens qui sont assez compétents pour pouvoir t'aider. N'hésite pas à poster si tu es bloqué.
Cordialement,
Merci pour Mimiste, Arth, Tsou, Hafidodido, Marco la baraque (pour bien en resume car vraiment j' avais besoin pour bien m'eclairer les # suggestions) .
Mnt que le code est correcte g besoin de m'expliquer comment pourrais-je faire son executable (sans acceder au code du programme a chaque fois et executer).
Merci d'avance amis.
Mnt que le code est correcte g besoin de m'expliquer comment pourrais-je faire son executable (sans acceder au code du programme a chaque fois et executer).
Merci d'avance amis.