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 :

[Débutant]Procédure avec paramètres entrée / sortie


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut [Débutant]Procédure avec paramètres entrée / sortie
    bonjour,
    je voudrais créer une procédure avec plusieurs paramètres en entrée et sortie
    je n'arrive pas a trouver la syntaxe

    merci de m'eclairer

    [ Modéré par SEMPERE Benjamin ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Salut,

    En java, tout est passé par reference. c'est à dire que les attributs d'une methode ne sont en quelque sorte que des pointeurs vers un objet. Ce passage par reference est en fait un passage d'attribut en IO.
    Donc en gros, si tu passes un objet (attention, pas un type primitif !) dans une procedure et que tu le modifies, c'est modifications seront repercutées dans ton objet initial d'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void main(String[] args) {
      String a = "bouh";
      modif(a);  
      //a vaut maintenant "bah"
    }
    public void modif(String a) {
      a="bah";
    }
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    ok, donc vu que je passais quelques"int", il suffit que je passe des "Integer" a la place et ca devrait le faire alors ??

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    normalement, ca devrait fonctionner.
    Mais attention, si dans ta methode tu fais un
    Tu modifies la reference et donc... ça ne fonctionnera pas.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    arfff, ok
    c pour ca que ca ne marche pas
    c justement ce que je viens de faire

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Integer est un type immuable, une fois l'objet construit, tu ne peux le modifier.
    Pour ton problème, tu peux passer un tableau d'entiers.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par viena
    Salut,

    En java, tout est passé par reference. c'est à dire que les attributs d'une methode ne sont en quelque sorte que des pointeurs vers un objet. Ce passage par reference est en fait un passage d'attribut en IO.
    Donc en gros, si tu passes un objet (attention, pas un type primitif !) dans une procedure et que tu le modifies, c'est modifications seront repercutées dans ton objet initial d'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void main(String[] args) {
      String a = "bouh";
      modif(a);  
      //a vaut maintenant "bah"
    }
    public void modif(String a) {
      a="bah";
    }
    Je suis pas d'accord avec toi sur ce sujet là, les chaines de caractères sont immutables en java donc lors de l'execution du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public static void main(String[] args) { 
            String a = "bouh"; 
            modif(a);  
          } 
          public static void modif(String a) { 
            a="bah"; 
          }
    La chaine "a" vaut toujours "bouh" après l'appel de la fonction modif

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Les Integer n'étant pas mutables (modifiables) ce ne serait de toute facon pas possible de faire une variable entrée/sortie avec.

    Par contre un tableau d'Integer ou d'int, ou une structure quelconque qui a des champs int là c'est bon.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par SEMPERE Benjamin
    Citation Envoyé par viena
    Salut,

    En java, tout est passé par reference. c'est à dire que les attributs d'une methode ne sont en quelque sorte que des pointeurs vers un objet. Ce passage par reference est en fait un passage d'attribut en IO.
    Donc en gros, si tu passes un objet (attention, pas un type primitif !) dans une procedure et que tu le modifies, c'est modifications seront repercutées dans ton objet initial d'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void main(String[] args) {
      String a = "bouh";
      modif(a);  
      //a vaut maintenant "bah"
    }
    public void modif(String a) {
      a="bah";
    }
    Je suis pas d'accord avec toi sur ce sujet là, les chaines de caractères sont immutables en java donc lors de l'execution du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public static void main(String[] args) { 
            String a = "bouh"; 
            modif(a);  
          } 
          public static void modif(String a) { 
            a="bah"; 
          }
    La chaine "a" vaut toujours "bouh" après l'appel de la fonction modif
    Pour modifier par référence une chaine de caractères tu peux utiliser le StringBuffer voire même StringBuilder(pour java 5) qui est plus performant car non threadsafe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public static void main(String[] args) { 
            StringBuffer a = new StringBuffer("bouh"); 
            modif(a);  
            //a vaut bouhbah
          } 
          public static void modif(StringBuffer a) { 
            a.append("bah"); 
          }

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    ok, donc a la place de passer des "int" en parametres, je vais passer un "tableau de int"
    a la place de mes "String" je vais voir pour passer des "StringBuffer"
    et pour des "boolean" ??

    merci

  11. #11
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    extrapolons.. un tableau de booléens ?

  12. #12
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Effectivement, j'ai répondu trop vite sans réflechir. Avec les types immuables (cf doc java) ça ne fonctionnera pas.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  13. #13
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Lorsque j'ai besoin d'une méthode qui a plusieurs paramètres en E/S, je crée un objet "de transfert" contenant les paramètres à modifier:
    Je trouve ça :
    • plus propre
      plus lisible
      plus maintenable

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    merci tout le monde

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

Discussions similaires

  1. Procédure SQL avec paramètre entrée et paramètre sortie
    Par francky74 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/07/2014, 08h25
  2. procédure avec paramètre de sortie
    Par Ashin dans le forum C
    Réponses: 11
    Dernier message: 18/03/2008, 17h20
  3. appel procédure avec paramètres ds fonction
    Par cpattin dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/06/2007, 22h11
  4. Problème procédure avec paramètres
    Par Aizen64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/06/2007, 10h40
  5. Fonction ou procédure avec paramètres optionnels ?
    Par [Silk] dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2006, 13h55

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