Problème java modification du constructeur
Fermé
FMMF88
Messages postés
5
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009
-
22 déc. 2009 à 15:52
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 - 23 déc. 2009 à 12:00
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 - 23 déc. 2009 à 12:00
A voir également:
- Problème java modification du constructeur
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Suivi de modification word - Guide
- Logiciel modification pdf gratuit - Guide
- Java apk - Télécharger - Langages
4 réponses
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
22 déc. 2009 à 16:01
22 déc. 2009 à 16:01
Bonjour,
Ce sont de simples set et get que tu demande ?
Tu veux seulement changer la valeur du parametres a ?
Dans ce cas :
public void setA ( string monA){
A = monA;
}
public string getA(){
return A;
}
Le set te permettra de changer la valeur de A, et le get de l'obtenir. C'est ca que tu voulais ?
Ce sont de simples set et get que tu demande ?
Tu veux seulement changer la valeur du parametres a ?
Dans ce cas :
public void setA ( string monA){
A = monA;
}
public string getA(){
return A;
}
Le set te permettra de changer la valeur de A, et le get de l'obtenir. C'est ca que tu voulais ?
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
23 déc. 2009 à 10:29
23 déc. 2009 à 10:29
Tu ne peux pas modifer les parametres de la classe super dans la classe hérité, je crois.
Si tu compte modifier les parametres a, b, et c de la classe super, tu dois faire les méthodes get et set dans celle ci, puis, l'appeler avec le mot clé super.
Je sais pas si je suis assez clair...si ?
Si tu compte modifier les parametres a, b, et c de la classe super, tu dois faire les méthodes get et set dans celle ci, puis, l'appeler avec le mot clé super.
Je sais pas si je suis assez clair...si ?
FMMF88
Messages postés
5
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009
23 déc. 2009 à 11:24
23 déc. 2009 à 11:24
j'ai fais les modifications. Si j'ai bien tout compris maintenant ma classe mère ressemble à :
public Droite(double a,double b,double c)
{ this.a=a;
this.b=b;
this.c=c;
x1 = a;
y1 = b;
x2 = x1+1;
y2 = y1+c;
}
public void set_a(double abis)
{ a = abis;
}
public void set_b(double bbis)
{ b = bbis;
}
public void set_c(double cbis)
{ c = cbis;
}
et ma classe fille est maintenant :
public Droite2Points(Point A,Point B)
{super(a,b,c);
x1 = A.abscisse();
y1 = A.ordonnee();
x2 = B.abscisse();
y2 = B.ordonnee();
}
public void instanciate(){
super.set_a(x1) ;
super.set_b(y1) ;
super.set_c((y2-y1)/(x2-x1));
}
Si c'est bien cela ça ne marche toujours pas. Les valeurs de a,b et c reste toujours à 0. elle ne semble pas avoir été modifié. As tu une idée du problème.
merci d'avance
public Droite(double a,double b,double c)
{ this.a=a;
this.b=b;
this.c=c;
x1 = a;
y1 = b;
x2 = x1+1;
y2 = y1+c;
}
public void set_a(double abis)
{ a = abis;
}
public void set_b(double bbis)
{ b = bbis;
}
public void set_c(double cbis)
{ c = cbis;
}
et ma classe fille est maintenant :
public Droite2Points(Point A,Point B)
{super(a,b,c);
x1 = A.abscisse();
y1 = A.ordonnee();
x2 = B.abscisse();
y2 = B.ordonnee();
}
public void instanciate(){
super.set_a(x1) ;
super.set_b(y1) ;
super.set_c((y2-y1)/(x2-x1));
}
Si c'est bien cela ça ne marche toujours pas. Les valeurs de a,b et c reste toujours à 0. elle ne semble pas avoir été modifié. As tu une idée du problème.
merci d'avance
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
23 déc. 2009 à 11:30
23 déc. 2009 à 11:30
Hum, ca m'a l'air correct, pourtant...
Question toute bête, tu es sûr que x1, y1, etc... ne sont pas égal a 0 ?
Egalement, tu ne l'as pas marqué, mais tu as bien declaré les attributs a, b, c, x1, etc... dans la classe mère (et pareil dans la classe fille) ?
Question toute bête, tu es sûr que x1, y1, etc... ne sont pas égal a 0 ?
Egalement, tu ne l'as pas marqué, mais tu as bien declaré les attributs a, b, c, x1, etc... dans la classe mère (et pareil dans la classe fille) ?
FMMF88
Messages postés
5
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009
23 déc. 2009 à 11:43
23 déc. 2009 à 11:43
oui j'ai bien déclaré toutes mes variables. Mais en fait le problème c'est que quand je crée la variable a de la classe fille je ne l'initialise pas. Du coup je suppose qu'elle doit prendre une valeur par défaut à 0. Et ensuite cette valeur ne veut pas être modifié (même par les set). Du coup dans le constructeur de la classe mère j'ai a,b et c qui sont à 0 et toutes les valeurs qui en découlent sont fausses (notamment x1,y1,...). En plus je divise par 0 à un moment et j'obtiens des NaN.
J'avais pensé que c'était peut-être une mauvaise utilisation du terme "static" dans la classe fille mais je suis obligé de le mettre vu que j'invoque un constructeur par super (sinon il me souligne en rouge).
Voilà si tu as d'autres idées je suis preneur ou si tu veux des précisions sur mon code hésite pas.
merci d'avance
J'avais pensé que c'était peut-être une mauvaise utilisation du terme "static" dans la classe fille mais je suis obligé de le mettre vu que j'invoque un constructeur par super (sinon il me souligne en rouge).
Voilà si tu as d'autres idées je suis preneur ou si tu veux des précisions sur mon code hésite pas.
merci d'avance
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
23 déc. 2009 à 12:00
23 déc. 2009 à 12:00
Ah, oui, en effet, si tu initialise pas les varaibles a, b et c, ca va pas aller...
Mais...pourquoi tu ne les initialise pas ?
Et je ne vois pas ou sont tes "static", non plus.
Le Java commence a être un peu loin pour moi, je mélange les notions ^^'
Mais...pourquoi tu ne les initialise pas ?
Et je ne vois pas ou sont tes "static", non plus.
Le Java commence a être un peu loin pour moi, je mélange les notions ^^'
23 déc. 2009 à 10:25
merci pour ta réponse. Mais en fait mon problème repose aussi sur le fait que ma classe est une classe héritée. J'utilise donc le terme super et ce sont les paramètres de super que je souhaite ensuite modifier. voilà un exemple de mon constructeur et de la méthode qui devrait modifier ce constructeur:
double x1;
double x2;
double y1;
double y2;
static double a;
static double b;
static double c;
public Droite2Points(Point A,Point B)
{super(a,b,c);
x1 = A.abscisse();
y1 = A.ordonnee();
x2 = B.abscisse();
y2 = B.ordonnee();
}
public void instanciate(){
a = x1;
b = y1;
c = (y2-y1)/(x2-x1);
}
et même en mettant des méthodes set et get je ne voie pas comment résoudre le problème.
merci d'avance.