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
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
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"
ok, donc vu que je passais quelques"int", il suffit que je passe des "Integer" a la place et ca devrait le faire alors ??
normalement, ca devrait fonctionner.
Mais attention, si dans ta methode tu fais un
Tu modifies la reference et donc... ça ne fonctionnera pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part a= new Integer(3);
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"
arfff, ok
c pour ca que ca ne marche pas
c justement ce que je viens de faire
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.
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:Envoyé par viena
La chaine "a" vaut toujours "bouh" après l'appel de la fonction modif
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"; }
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
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
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 threadsafeEnvoyé par SEMPERE Benjamin
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
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
extrapolons.. un tableau de booléens ?
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"
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
merci tout le monde
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager