Tableaux en Java
Résolu/Fermé
talbsbast
Messages postés
54
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
3 février 2023
-
Modifié par jipicy le 9/02/2014 à 15:10
talbsbast Messages postés 54 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 février 2023 - 9 févr. 2014 à 15:37
talbsbast Messages postés 54 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 février 2023 - 9 févr. 2014 à 15:37
A voir également:
- Tableaux en Java
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Tableaux croisés dynamiques - Guide
- Jeux java football - Télécharger - Jeux vidéo
- Java jre - Télécharger - Langages
2 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
9 févr. 2014 à 15:17
9 févr. 2014 à 15:17
"normalement les tableaux sont des pointeurs"
Il n'y a pas de pointeurs en Java, uniquement des références vers des objets (un tableau est un objet), mais lors d'un appel d'une méthode la référence est passée par valeur ! Donc si tu modifies la variable dans la méthode en lui affectant une nouvelle valeur, ça ne modifieras pas l'objet, juste la référence à cet objet. En dehors de la méthode la référence vers l'objet initial est conservée.
Donc
Une manière (moche) de faire, serait de passer en paramètre un tableau
Exemple :
Cependant Java est un langage objet, il n'est pas fait pour ce genre de codes !
En conception objet, tu passerais à ta méthode un objet de classe Param qui retournerais un objet de la classe Result (par exemple), et sans modifier la référence à l'objet Param tu pourrais en modifier sa valeur au travers de ses méthodes.
Exemple :
Il n'y a pas de pointeurs en Java, uniquement des références vers des objets (un tableau est un objet), mais lors d'un appel d'une méthode la référence est passée par valeur ! Donc si tu modifies la variable dans la méthode en lui affectant une nouvelle valeur, ça ne modifieras pas l'objet, juste la référence à cet objet. En dehors de la méthode la référence vers l'objet initial est conservée.
Donc
a = LSous(a, b0);modifieras uniquement la valeur de la variable
apour lui affecter la référence à un autre objet. Mais en dehors de la méthode la référence à l'objet initial est conservée.
Une manière (moche) de faire, serait de passer en paramètre un tableau
short[][] aboù
short[0]serait
aet
short[1]serait
b. Tu ne pourras pas changer la référence sur
abpar contre tu pourras modifier l'objet et les références
ab[0]et
ab[1].
Exemple :
short[] a = ...; short[] b = ...; short[][] ab = { a, b }; short[] q = LDiv(a,b); a = ab[0]; b = ab[1];
Cependant Java est un langage objet, il n'est pas fait pour ce genre de codes !
En conception objet, tu passerais à ta méthode un objet de classe Param qui retournerais un objet de la classe Result (par exemple), et sans modifier la référence à l'objet Param tu pourrais en modifier sa valeur au travers de ses méthodes.
Exemple :
short[] a = ...; short[] b = ...; Param p = new Param(a,b); Result r = LDiv(p); a = p.getA(); b = p.getB();
talbsbast
Messages postés
54
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
3 février 2023
1
9 févr. 2014 à 15:37
9 févr. 2014 à 15:37
Merci KX pour votre réponse ça m'a aidé ^^