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 :

Différence entre .length et .length()


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Différence entre .length et .length()
    Boojour,

    Je suis un débutant en Java et souhaiterais savoir qu'elle est la différence entre .length et .length() ?

    C'est-à-dire quand est-ce qu'on utilise .length sans () et quand est-ce qu'on l'utilise avec.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut
    Bonjour

    Une explication pas l'exemple.

    char[] unTableau ==> dans ce cas c'est lenght

    String uneString ==> dans ce cas c'est lenght()

    dans le premier cas, c'est un tableau , donc pas de parenthèses
    dans le deuxième cas, c'est une méthode de la classe String
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Le .length est surtout une propriété.
    Par contre, le length() est une méthode. Donc retourne une valeur, celle-ci peut-être calculer ou non.


    En général, une seul de ces deux options est accessibles. (Pas de méthode sur les type tableaux)
    A noté qu'on a aussi le size() !

    Si tu veux être sûr de celui à utiliser. Je te conseil la javadoc.

    Cordialement,
    K
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par kalfadine Voir le message
    cad quand esqu'on utilise le .length sans () et quand esque on l'utilise avec ()cad .length()
    Quand c'est celui-là qui marche .

    Avec les tableaux c'est .length, la propriété, et donc si tu essaies .length() la méthode, ça ne compilera pas.
    Avec les String c'est .length(), la méthode, et donc si tu essaies .length la propriété, ça ne compilera pas.

    => Utiliser celui qui compile. Un peu dommage que les deux existent, mais c'est pas plus compliqué que ça .
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études et développement JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    Bonjour ce qui explique l’utilisation de length ou length(), dans un tableau et dans un String c'est que Strings utiliser des tableaux en interne. Si des chaînes serait également utiliser un champ pour stocker leur longueur, les informations seraient effectivement dupliqué - une fois dans le tableau lui-même, et une fois dans les champs de la chaîne.
    autre chose qu'il faut savoir c'est que la taille des tableaux dans java est immuable.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par naou18 Voir le message
    Bonjour ce qui explique l’utilisation de length ou length(), dans un tableau et dans un String c'est que Strings utiliser des tableaux en interne. Si des chaînes serait également utiliser un champ pour stocker leur longueur, les informations seraient effectivement dupliqué - une fois dans le tableau lui-même, et une fois dans les champs de la chaîne.
    Euh. En interne les String ont bel et bien un champ de ce genre, qui est renvoyé par length().
    C'est effectivement une info dupliquée quand la String est à base de tableau nouvellement créé pour elle.
    Mais certaines String sont définies comme sous-String d'autres String et réutilisent le même tableau, avec un indice de départ et une longueur différents. Dans ce cas-là ce n'est pas dupliqué.
    On peut pas vraiment dire que ça explique le choix d'une méthode plutôt que juste un attribut. Disons que l'emploi d'une méthode fait plus "objet".

    Citation Envoyé par naou18 Voir le message
    autre chose qu'il faut savoir c'est que la taille des tableaux dans java est immuable.
    Oui... Les String sont immutables aussi, pas seulement leur taille, mais leur contenu aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études et développement JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    @thelvin
    Oui... Les String sont immutables aussi, pas seulement leur taille, mais leur contenu aussi.
    je suis d'accord avec vous les Strings sont immuables, ça je discute pas,
    ce que je veux dire par contre c'est que la taille= size d'un tableau une fois crée est immuable, et que le contenu peux changer par exemple t[0]="XX".

Discussions similaires

  1. différence entre vsize et length
    Par daliok dans le forum Oracle
    Réponses: 5
    Dernier message: 06/07/2017, 21h28
  2. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  3. difference entre size et length?
    Par canary dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 28/01/2008, 20h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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