Est il possible de créer des opérateur comme en C++ operator+ en java.
J'ai beau cherché, je ne trouve pas pour java.
Bon je sais qu'on peut faire des méthode, mais l'utilisation des opérateur était quant même sympa !!!
Est il possible de créer des opérateur comme en C++ operator+ en java.
J'ai beau cherché, je ne trouve pas pour java.
Bon je sais qu'on peut faire des méthode, mais l'utilisation des opérateur était quant même sympa !!!
La surcharge d'operateur n'est pas permise en Java
Salut,
Non malheureusement on ne peut pas créer d'opérateurs en Java...en tout cas pas pour le moment.
a+
merci !! Je m'en doutais, mais ne connaissant pas tout du java, on ne sais jamais.
Salut,
Non heureusement on ne peut pas créer d'opérateurs en Java...en tout cas pas pour le moment.Envoyé par Kh4iN3
![]()
a++
Tu es contre?Envoyé par adiGuba
En même temps, je n'ai moi même jamais trop compris l'intérêt sorti d'un contexte mathématique.
Personnellement j'ai appris à coder en c++ c'est pour ca que je dis malheureusement, c'est quand meme plus simple (au niveau clarté du code) par contre je ne vois pas d'autre interet
...
pour moi, être obliger de surcharger les opérateurs est une contrainte. En avoir la possibilité serait un avantage.
Imaginons une classe "conteneur" de type ArrayList:
sans surcharge :
maListe.get(i);
avec surcharge :
maListe[i];
ça simplifie le code et sa compréhension parfois.
Un peu oui...Envoyé par Descent
Tu as ciblé le problèmeEnvoyé par Descent
En fait je suis plutôt partisan de surcharge d'opérateur limité par le langage plutôt que d'avoir la possibilité de faire tout et n'importe quoi
Pour moi il y a principalement trois grandes utilités :
- Les opérateurs mathématiques.
- Les accès indexés (List) ou mappés (Map) (exemple de iohack)
- Les concaténations de chaines.
Les concaténations de chaines sont déjà surchargés (opérateur +), et j'avoue que les accès indexés/mappés peuvent s'avérer sympathique. Quand aux opérateurs mathématiques sont principalement nécessaire pour la classe BigDecimal (car pour les autres Number l'autoboxing le permet déjà).
Il y a eu des suggestions pour intégrer ces deux dernières surcharges dans le langage pour Java 7 (mais rien d'officiel tant que la JSR n'aura pas été créée), et je n'y vois pas vraiment d'inconvénient...
Par contre je ne souhaite pas du tout que la surcharge d'opérateur soit utilisable à tord et à travers par n'importe qui, car tout ce qu'on y gagne c'est qu'on se retrouver avec des opérateurs qui ont un sens différent selon les objets... voir même selon leurs ordonnancements ( A * B peut être différent de B * A si A et B ne sont pas exactement le même type).
De plus cela peut avoir des effets indésirables invisibles (car le développeurs peut ignorer complètement ce qui se passe derrière l'opérateur), et lorsqu'on voit les problèmes qu'il peut y avoir avec l'opérateur + sur les String, je n'imagine même pas ce que ca pourrais donner si tout le monde faisait ses propres opérateurs![]()
Bref la surcharge d'opérateur c'est bien, mais avec modération![]()
a++
ben pour moi c'est dans un cadre mathématique.
Je dois faire momuse avec des domaines, et devoir faire une ligne avec une méthode a chaque fois que je veux faire un calcul, ca devient vite chiant !!!
A moins qu'il y ai une autre solution, mais des additionner, soustraire, diviser multiplier union etLogique ouLogique inversion etc, ca ne fait du coup absolument pas lisible !!!
Partager