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

Langage Java Discussion :

[debutant][Portée] Déclaration de variable .....


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut [debutant][Portée] Déclaration de variable .....
    Bonjour,

    Je sais qu'en general il faut toujours declarer ses variables "le plus haut possible" mais dans un cas conditionel :

    CAS 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Plein de code avant
    if (ok) {
           String maChaine="Salut";
           monTraitement();
    }
    CAS 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String maChaine = "Salut";
    //plein de code
    if (ok) {
           monTraitement();
    }
    l'espace alloué pour maChaine est fait au moment ou le if est verifié ou pas ? si oui le cas 1 est mieux quand on a plein de variables non ? Et imaginons que le if se transforme en while ca change quelque chose ?

    Merci

    J'aurais du suivre en cours .....[/code]

  2. #2
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    d apres moi, il est mieux de declarer ses variables en debut de bloc, et pas forcement de methode, le mieux etant de les declarer uniquement dans le bloque ou elles sont utilisees..

    en C c est d ailleurs obligatoire. en debut de bloc, c est plus lisible que partout, ou faut les retrouver au petit bonheur la chance..

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    oui, le cas 1 ne déclare ta chaine que si le if est vérifié...

    donc, le cas 1 est mieux.... pour autant que tu ne doives pas utiliser cette chaine ailleurs !

    par contre, dans le cas d'un while, tout pendant que le while tourne il te fera une déclaration d'une nouvelle variable String... donc, il y a réservation de cases mémoires pour ton String, et perte de l'ancien String (la mémoire sera récupéré par le Garbage Collector)... c'est pas top donc...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Le mieux c'est de pratiquer une affectation parresseuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Plein de code avant 
    // L'objet String n'est pas crée ici
    String maChaine; 
     
    if (ok) { 
           // L'objet String est crée ici
           maChaine="Salut"; 
           monTraitement(); 
    }
    parceque il est conseillé de définir ces variables en début de traitement pour plus de lisibilité...

    De plus le CAS 1 et le CAS 2 ne sont pas équivalents:

    dans le CAS 1 maChaine est locale à la boucle (cette valeur n'est pas connue en dehors de la boucle),

    dans le CAS 2 maChaine est globale à la méthode (visible dans toute la méthode).

    a+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    Ok nickel !!
    Je vous remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Déclaration de variables et portée
    Par pyloupylou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/04/2013, 14h38
  2. déclaration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    Réponses: 10
    Dernier message: 30/12/2004, 22h33
  3. [FLASH MX2004] Déclaration de variables sous flash mx
    Par softyClochette dans le forum Flash
    Réponses: 4
    Dernier message: 29/11/2004, 16h11
  4. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  5. [debutant][Port COM]
    Par Shooter dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/07/2004, 09h43

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