Problème de get attributs d'autre classe

Résolu/Fermé
BlueKapotte - 24 févr. 2021 à 21:47
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 25 févr. 2021 à 12:26
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 !
A voir également:

3 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
25 févr. 2021 à 07:51
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
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
25 févr. 2021 à 08:24
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.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
25 févr. 2021 à 09:46
Salut, en C# on fait pareil ;)
0
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
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
25 févr. 2021 à 12:26
De rien
0