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] appel d'une méthode objet

ptibiscuit32
ptibiscuit32
Niveau 13
03 février 2013 à 18:23:19

Bonsoir :)

J'ai créé une classe objet Date ayant une méthode publique qui compare(compareTo) une date donné avec la date du jour et renvoie -1,0 ou 1 si la date est plus petite,égale ou grande que la date du jour.

public int compareTo(Date dateCompare) { // ma méthode publique "compareTo" elle reçoit en paramètre un date que je compare avec la date du jour et elle renvoie -1,0 ou 1

Date dateDuJour = new Date() ; // "Date()" est un constructeur qui initialise dateDuJour à la date du jour, elle se trouve dans la méthode publique "compareTo" :)

Dans une autre classe j'ai un "main" qui utilise la méthode "compareTo".

main {

Date dateCompare = new Date(jour,mois,année) // je crée un objet date (date que je vais comparer avec la date du jour)

petitEgalOuGrand = date_sert_à_rien.compareTo(dateCompare) ; //mon appel de la méthode "compareTo". Donc petitEgalOuGrand sera initialisé à -1,0 ou 1.

Ma question est que pour faire appel à la méthode "compareTo" je suis obliger de créé un objet "date_sert_à_rien qui ne me sert à rien comme son nom l'indique mais c'est la seule solution que j'ai trouvé.
Y a-t-il un autre moyen pour faire appel à la méthode "compareTo" ?

Un tout grand merci d'avance :hap:

[-ArK-]
[-ArK-]
Niveau 29
03 février 2013 à 18:46:31

Je suis pas certain d'avoir compris le problème à deux niveaux

D'une part, si tu compare uniquement la date courante à la du jour dans le compareTo, pourquoi entrer une date en paramètre ? Tu pourrais utiliser "this" et comparer changer la méthode en "CompareToToday()" par exemple

Ensuite, dans ton exemple, pourquoi ne pas faire dateCompare.compareTo(dateCompare) plutôt que d'instancier une date en plus ?

Pour finir, tu peux utiliser le mot clef "static" pour pouvoir appeler une méthode sans avoir à instancier d'objets (et dans ce cas là oui, faudra passer la date en paramètre pour pouvoir la comparer), du genre public static int compareTo(Date date); et pour l'appeler tu pourras juste faire Date.compareTo

Voilà :hap:

ptibiscuit32
ptibiscuit32
Niveau 13
03 février 2013 à 18:54:28

ah merci j'ai compris des choses que je n'avais pas très bien compris au départ :) un tout grand merci :ok:

PocoIo
PocoIo
Niveau 10
03 février 2013 à 19:04:13

A mon avis il veut utiliser l'interface Comparable de Java qui contient une méthode :

public int compareTo(Object t);

Il ne peut donc pas changer la signature et la mettre static. A noter aussi que l'auteur fait une mauvaise utilisation de la méthode compareTo, normalement on compare l'objet qui appelle la fonction avec l'objet passé en paramètre, là il veut comparer l'objet passé en paramètre avec un objet instancié dans la méthode, ça n'a pas vraiment de sens.

Si le constructeur par défaut initialise la date à la date du jour le plus simple serait d'écrire :

UneDateQuelconque.compareTo(new Date());

C'est plus correct de l'écrire comme ça.

ptibiscuit32
ptibiscuit32
Niveau 13
03 février 2013 à 21:08:30

Oui merci pour tout vous dire je débute en java et plus particulièrement dans l'orienté objet et je voyais bien que c'était bizarre mon appel de méthode vous m'avez bien éclairé :)

encore merci àvous deux :ok:

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