Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 2.1  Syntaxe de base
 2.2  Types Primitifs
 2.3  Tableaux
 2.4  Méthodes
 2.5  Exemple de passage d'arguments
 Questions
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


2.5 Exemple de passage d’arguments

 
public class EssParm { 
2    private static void add(int c, final int[] as) { 
        c++; 
        as[0] ++; 
        System.out.println("add:c=" + c + ",as[0]=" + as[0]); 
6    } 
    public static void main(final String argv[]) { 
        int i = 0; 
        int s[] = new int[10]; 
10        s[0] = 0; 
        add(i, s); 
        System.out.println("main:i=" + i + ",s[0]=" + s[0]); 
    } 
14}

Résultat de l’exécution :  

verbatim

    précédent     suivant 


Les variables de type primitif sont passées par copie. La modification de la copie c de la variable i dans la méthode add n’a pas de répercussion sur la valeur de la variable i. La variable c est donc bien une variable différente de la variable i. Cette variable a été initialisée avec la valeur de la variable i lors de l’appel.

Dans notre exemple les variables s et as font référence au même tableau. Ainsi, lorsque l’entrée 0 du tableau est modifiée dans la méthode add en utilisant la variable as, l’entrée correspondante vue à travers la variable s paraît modifiée de manière identique.

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015