Portée des variables

Résolu
ldumont Messages postés 53 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 5 mars 2008 - 26 févr. 2008 à 19:31
ldumont Messages postés 53 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 5 mars 2008 - 27 févr. 2008 à 09:48
Bonjour,
jai encore un petit problème pour changer....
voici ma classe principale :
public class GridBagLayoutDemo extends Frame{
private int _x;
public GridBagLayoutDemo ()
{
...
JComponent image = new MyCanvas(img);
final Voiture voiture = new Voiture();
voiture.setKgear(image._o); //éclipse me dit que image._o n'existe pas...

private static class MyCanvas extends JComponent implements MouseListener {
public int _o=0;
......
}
}

et jai aussi ma classe Voiture :
public class Voiture{
private int _kGear;
public void setKgear(int kgear)
{
_kGear=kgear;
}
}

et le problème est que je n'arrive pas à modifier _kGear de ma classe Voiture, j'aimerais lui donner la valeur _o de la classe MyCanvas et j'y arrive pas... :'(

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 févr. 2008 à 07:02
Salut,

Il s'agit tout simplement d'un problème d'interface :
JComponent image

Hors, l'interface JComponent ne possède pas de "_o", MyCanvas si, donc cast ton instance d'image en MyCanvas pour que le compilo sache quoi faire :

image._o devient : ((MyCanvas) image)._o

Note : ta façon de faire n'est pas propre du tout ! Il vaudrait mieux rendre ton membre _o privée à ta classe, et faire un getter/setter dessus !

______________________________________
DarK Sidious
3
ldumont Messages postés 53 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 5 mars 2008
27 févr. 2008 à 09:48
Exact, merci!.
oui je sais que de rendre public la variable n'es pas propre, mais je ne comprenais pas pourquoi ça ne marchait pas, alors javais enlevé mon getVariable et l'avait rendue public pour etre sure que ça ne venait pas de là.
Merci encore.
0
Rejoignez-nous