Problème de get attributs d'autre classe [Résolu]

Signaler
-
Messages postés
15953
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mai 2021
-
Bonjour,

Après environ cinq heures d'essais infructueux, je me tourne vers vous parce que je n'arrive vraiment pas à comprendre.
Concrètement, pour un projet d'informatique, j'essaie de créer des classes d'objets géométriques, et je commence logiquement par le point et le segment. Seulement, dès qu'il faut faire des calculs sur le segment, il faut les coordonnées des points le composant.
J'ai donc commencé par déclarer les attributs de ma classe Point en public, et ai utilisé l'abs et l'ord de mes points dans des calculs de la classe Segment. Ca me donnait ce message : "The field Point.abs is not visible" malgré la déclaration public.
J'ai donc tenté de créer une méthode getAbs dans ma classe Point :
"public double getAbs(){
return this.abs;
}"
La encore, c'est un échec dans ma classe Segment : "The method getAbs() is undefined for the type Point"
Je pense qu'il s'agit d'un problème de package ou d'import, mais j'ai encore très peu compris ces concepts donc je ne vois pas du tout comment solutionner ce problème.
Si quelqu'un peut me proposer un fix je suis preneur ;) Merci d'avance !

3 réponses

Messages postés
15953
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mai 2021
704
Bonjour

je ne code pas en Java, mais comme personne ne t'a répondu jusque là, je tente une proposition basée sur les langages que je connais.

Le type Point est déjà définit en Java https://docs.oracle.com/javase/7/docs/api/java/awt/Point.html

Dans ta classe Segment, il est possible que ce soit ce type qui soit utilisé et pas le tien.
Une façon simple de vérifier est de renommer ta classe (MonPoint par exemple).
Si dans Segment tu as une nouvelle erreur du genre le type Point n'existe pas, alors c'est bien ta classe qui est utilisée, si ça ne change rien c'est celle de Java.

Si c'est bien ta classe, pour que ceux qui savent coder en Java puissent t'aider, il faudra poster le code des tes 2 classes en suivant le petit tuto là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Si c'est la classe de Java, une option sera d'utiliser MonPoint dans Segment. Il doit y avoir moyen d'utiliser 2 classes du même nom dans un même code (c'est possible dans les langages que je connais) mais je ne sais pas comment faire
Messages postés
16339
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2021
2 830
Bonjour,

"Il doit y avoir moyen d'utiliser 2 classes du même nom dans un même code"
En Java il faudrait utiliser le nom complet de la deuxième classe, avec son package, comme ça il n'y a plus d'ambiguïté. C'est verbeux mais il n'y a pas d'autres alternatives, et en pratique ça arrive rarement.
Messages postés
15953
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mai 2021
704 >
Messages postés
16339
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2021

Salut, en C# on fait pareil ;)
Merci de vos réponses !
Il s'agissait effectivement d'un problème de nom de classe, plus facile à solutionner que ce que j'avais envisagé et tant mieux. J'ai juste changer ma classe Point en classe Noeud et le tour était joué.
Encore merci
Messages postés
15953
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mai 2021
704
De rien