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 :

Passage d'une variable dans une procédure


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut Passage d'une variable dans une procédure
    Hello,

    J'ai une question fonctionnelle Java.
    J'ai un programme tout bete, cf. mon 'main' ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int a = 2;
    modifier(a);
    System.out.println("a = " + a);
    et voici ma procédure 'modifier' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void modifier()
    {
         a = a + 1;
    }
    Ce bout de code ne marche pas car la variable 'a' n'est pas déclarée dans ma procédure 'modifier'.
    Je souhaiterai savoir si l'on peut modifier, une variable (déclarée dans le corps du programme), dans une fonction...

    Je sais pas si je suis assez clair ?!?!

    Merci pr votre aide

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    Juste une petite précision, je ne veux pas utiliser de fonction (avec un 'return') et faire ensuite un truc comme :
    a = modifier() ...

    Merci

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 90
    Points
    90
    Par défaut
    Non, il est impossible ( enfin presque ) de faire ce que tu demande en JAVA.
    L'une des solutions qui existe est d'utiliser des objets en temps que paramètres. Regarde du côté de Integer.

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    c'est possible si tu précede de la façon suivante :
    dans la classe contenant le main tu déclare une variable avec le mot static (dans ton cas ici c'est la variable a) ensuite tu appel cette variable dans la fonction modifier déclarer aussi static avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class A
    {
    private static int a = 2;
    public static void modifier() 
    {  
    a++;
    }
    public static void main(String argv[])
    {
    modifier();
    System.out.println("a = " + a);
    }
    }
    puisque la variable est déclaré static on n'aura pas besoin de this.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 90
    Points
    90
    Par défaut
    Ah oui c'est vrai. C'est la solution la plus simple.
    Je n'y avais pas pensé...

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    Hello mehdiing

    J'ai testé, ton exemple ne marche pas ...

  7. #7
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    il y'avait des erreurs je les ai corriger je l'ai aussi testé et ça marche bien.
    recopie le code et tu verra.

  8. #8
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    juste pour info elles sont ou les erreurs ??

  9. #9
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    est ce que le code a marché? pour les erreurs l'emploi de this avec une variable static.

  10. #10
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    be non ... ??? !!!

    Tu me dis que tu as corrigé un truc, mais tu ne me dis pas lequel ..??

  11. #11
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    désolé mais je t'ai dis de recopier le code car le l'ai changé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class A
    {
    private static int a = 2;
    public static void modifier() 
    {  
    a++;
    }
    public static void main(String argv[])
    {
    modifier();
    System.out.println("a = " + a);
    }
    }

  12. #12
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    be non ca ne marche pas !!

  13. #13
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    c'est quoi l'erreur et tu utilise quelle jdk? chez moi ça marche bien.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 90
    Points
    90
    Par défaut
    Tu as quoi comme message d'erreur ?

    As tu pensé :

    Si ton fichier .java à pour nom NomDuFichier.java alors tu as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class NomDuFichier
    {
     
    }

  15. #15
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    j'ai le message :
    "non-static variable this cannot be referenced from a static context"

  16. #16
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    je t'ai donné un autre code tu peut l'utiliser à la place de l'autre.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 90
    Points
    90
    Par défaut
    Le code de mehdiing est correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class A
    {
    private static int a = 2;
    public static void modifier() 
    {  
    a++;
    }
    public static void main(String argv[])
    {
    modifier();
    System.out.println("a = " + a);
    }
    }
    Je ne vois pas de this. Peut-tu montrer ton code ?

  18. #18
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    mon prog est bien défini...

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 90
    Points
    90
    Par défaut
    Normalement tu ne dois pas avoir de problème. Surtout que tu n'as pas de this dans le programme, je ne vois pas d'où peut venir l'erreur. Mais peut tu poster le code du programme ?

    merci

  20. #20
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 72
    Points
    72
    Par défaut
    hello,

    apres une bonne nuit de someil j'ai trouvé mon erreur ...
    Je n'avais pas enlevé le 'this'... de l'ancien code que tu proposais.

    Bon du coup ton code marche bien : on peut déclarer une variable en static en dehors du 'main' et la réutiliser dans toutes les fonctions du prog..

    Merci à tous
    bonne fin de week end et désolé pr le temps perdu...

    Bye

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2011, 15h30
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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