CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Entre méthodes ?

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 00:37:39

Bonsoir, je m'entraîne un peu en Java, ce n'est pas le langage que je maîtrise le mieux niveau POO, alors j'apprends en pratiquant. J'aimerai cependant savoir une chose qui pour vous sera certainement évidente :

Imaginons une classe lambda, son constructeur, ses méthodes.
Aprés le constructeur mon objet est définit. Arrivent ensuite disons deux méthodes quelconques.

J'aimerai que la deuxième méthode utilise des données issues de la seconde méthode, parce qu'actuellement prends le morceau de code qui m’intéresse dans ma première méthode et le colle dans ma deuxième méthode...ou alors je re-initialise dans la seconde des variables que j'avais déjà initialisé dans la première...

Vous voyez le truc je suppose, je me doute que ça donne un code dégueulasse, même si ça fonctionne. Mais y'a forcément une autre manière de faire bien plus propre et bien plus pro.
Et j'aimerai qu'on me l'explique si possible. J'imagine que c'est en rapport avec les mots clefs this et super, mais je n'en suis pas certain.

C'est justement pour ne plus me retrouver dans ce genre de cas d'ici quelques mois que je m'exerce remarque. Je vous remercie d'avance ^^

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 00:38:44

"J'aimerai que la deuxième méthode utilise des données issues de la seconde méthode"

Nope :d)

J'aimerai que la deuxième méthode utilise des données issues de la premiére méthode

Voilà, excusez l'erreur.

Tharsis
Tharsis
Niveau 10
17 juin 2014 à 01:24:25

Oui tu peux utiliser des méthodes dans d'autres oui, par exemple dans le code de la méthode 2 tu appelles la méthode 1. C'est même la meilleure chose à faire, sinon la méthode 1 ne servirait à rien !
Tu peux faire this.methode1() ou directement methode1() ça revient au même. Par contre, super c'est pour appeler une classe mère (abstraite), ça n'a rien à voir. :-)

LEpigeon-888
LEpigeon-888
Niveau 12
17 juin 2014 à 01:26:28

J'suis pas sur d'avoir compris, mais le truc a faire c'est de créer une troisième méthode qui contient ce qui est censé être commun a la méthode 1 et 2, et du coups appeler la 3ème méthode dans les 2 premières.

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 12:32:10

Tharsis : d'accord, et dans le cas de deux constructeurs avec des paramètres différents ? Si je veux que le second utilise ce dont dispose le premier, comment je fais l'appel puisque ces deux méthodes ont le même nom (celui de la classe donc) ?

Merci pour ta réponse vis à vis des méthodes "normales" ça m'a déjà bien été utile :fier:

LePigeon : En gros bah imagine deux méthodes différentes, il faudrait que la deuxième utilise des choses déclarées dans la première. Mais ça s'est réglé, maintenant j'aimerai faire de même avec des constructeurs :noel:

LEpigeon-888
LEpigeon-888
Niveau 12
17 juin 2014 à 13:51:07

Je comprends toujours pas, et je vois pas trop en quoi ce qu'à dit Tharsis t'as aidé en fait :(

Tu veux avoir accès aux variables locales d'une méthode dans une autre ? :doute:

Enfin, c'est quoi "les choses déclarées" ? Pour moi c'est des variables, après je pense que je comprends sans doute mal :(

Et si tu veux juste exécuter le code du constructeur A depuis le constructeur B (c'est absolument pas ce que je comprends quand je te lis, mais si la réponse de Tharsis t'as aidé c'est peut-être ça) je pense que le meilleur moyen reste de créer une méthode qui sera appelé dans les deux constructeurs :oui:

Tharsis
Tharsis
Niveau 10
17 juin 2014 à 14:38:52

Pour distinguer deux constructeurs je pense que c'est juste les paramètres que tu mets dedans. S'ils ont le même nom, ce sont les paramètres qui les différencieront. :)

Le mot-clé "super" c'est juste pour faire référence à la classe-mère, si tu veux appeler le constructeur de la classe-mère et rajouter d'autres attributs par exemple. :oui:

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 19:48:53

Pigeon : Bordayl :noel:

Tient un exemple :

http://pastebin.com/33TVTxDH

Un code rapide bricolé par dessus un ancien exo de première basé sur les plans les points et j'en passe.
En théorie il est simple à comprendre, j'ai juste rajouter mon problème avec des constructeurs qui, comme tu le vois, font en fait la même chose (créer une paire de nombres) mais en plusieurs fois (le troisième en fait deux, et pas qu'une).

T'as vu le nombre de variables identiques que je me retape dans chacun d'eux ? Y'a pas moyen de réutiliser par exemple, la première paire définie dans le deuxième constructeur (donc le premier qui a des paramètres) dans le troisième ?

Vous comprenez mieux ?

LEpigeon-888
LEpigeon-888
Niveau 12
17 juin 2014 à 20:43:20

Regarde du côté des fonction varadiques (si ça existe en java), sinon tu peux tout simplement passer une list de paires :oui:

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 20:50:50

Le Pestebin était juste un exemple je ne cherche pas de solution à ce problème bien précis (le truc de paire donc), mais dans la généralité :noel:

J'aimerai savoir comment, en Java, on peut utiliser les données présentes dans un constructeur au sein d'un autre constricteur. Comme me l'a apprit Tharsis, pour une méthode il suffit d’appeler la méthode que l'on souhaite dans le code d'une nouvelle méthode via le mot clef this pour que celle-ci bénéficie ses données.

Mais les constructeurs ont tous le même nom donc c'est pas possible. Alors how ? :noel:

Aldebran
Aldebran
Niveau 10
17 juin 2014 à 20:51:24

"Si je veux que le second utilise ce dont dispose le premier, comment je fais l'appel puisque ces deux méthodes ont le même nom (celui de la classe donc) ? "

Tu fais appel à this() qui permet d'appeler un constructeur depuis un autre constructeur en passant les bons paramètres.

http://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html (Using this with a constructor)

TommyVercittee
TommyVercittee
Niveau 10
17 juin 2014 à 21:02:19

Ah d'accord okay merci à tous :oui:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment