IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

La complexité du langage java


Sujet :

avec Java

  1. #1
    Candidat au Club Avatar de Jefweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut La complexité du langage java
    Bonjour à tous et à toutes,

    Je suis plutôt à l'aise avec le java et maintenant je rentre bien dedans notamment le design pattern et la complexités cyclomatique du langage etc...
    J'ai une question peut être bête mais ça mérite d'être posée

    On connait tous que la fameuse méthode println() à pour but d'afficher à la console un message, alors sachant qu'une méthode a des arguments, pourquoi on utilise dans cette méthode la concaténation + au lieu de , pour exprimer des arguments ? deuxièmement pourquoi elle affiche à la console un message alors qu'on l'appelle explicitement dans le code pour la surcharger.
    Quelqu'un aurait il la réponse philosophique de ce mécanisme ?

    Je vous remercie d'avance

    Bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    sachant qu'une méthode a des arguments, pourquoi on utilise dans cette méthode la concaténation + au lieu de ,
    La méthode println ne prend qu'un seul argument.
    C'est pour cela que si on veut voir plusieurs chaînes de caractères en une seule fois, il faut les concaténer.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour compléter, l'opérateur de concaténation en Java, c'est +, et ça n'a rien à voir avec System.out.println. On peut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String hello = "hello";
    String world = "world";
    String sentence = hello + " " + world +"!";
    La virgule (,) est le symbole de séparation des arguments dans l'appel d'une méthode entre autres : aucune raison donc de l'utiliser comme opérateur de concaténation.

    Maintenant, si tu veux pour une histoire de pratique avoir un moyen de faire une concaténation en utilisant des virgules, tu peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class utils {
     
    public static void println(Object...values) {
        System.out.println( Arrays.stream(values).map(Object::toString).collect(Collectors.joining("")));
    }
     
    }
    Et ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int a = 1;
    String b = "machin";
    Utils.println(a,b); // correspond à System.out.println( a + b)
    A noter que comme l'opérateur + est aussi l'opérateur d'addition, se méfier de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println( 1 + 1 + "truc" );
    Essaie pour voir !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    On est sur le System.out, mais à noter que dans plusieurs frameworks de logging, la syntaxe se fait avec des ",", mais comme un appel de méthode standard à paramètre multiple.
    La "," ne signifie pas une concaténation, mais un remplacement.

    Typiquement avec slf4j :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOGGER.info("No matching rule found for object : {} within dates {} and  {}", objectType, dateFrom, dateTo);
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. MySQL et langage Java sur Pocket PC
    Par Invité dans le forum Java ME
    Réponses: 2
    Dernier message: 22/04/2007, 10h51
  2. Besoin d'aide pour passage d'un algo au langage JAVA
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/02/2007, 15h33
  3. .net supporte bcps des langages, java est il compris?
    Par oumarou3 dans le forum Framework .NET
    Réponses: 3
    Dernier message: 07/02/2007, 00h19
  4. Gestion d'un fichier excel a partir du langage Java.
    Par anouar dans le forum JBuilder
    Réponses: 1
    Dernier message: 14/08/2006, 10h31
  5. Commencer la programmation avec le langage Java ?
    Par von_magnus dans le forum Débuter
    Réponses: 14
    Dernier message: 09/03/2004, 22h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo