Jevas

1245 mots 5 pages
Passage par Valeur ou par Référence
Théorie et pratique de la programmation Pascal Fua

Que fait ce programme? class ClassA { int m_int; public ClassA(int val) { m_int = val; } public String toString() { return "" + m_int; } } public class ValueTest { // some member function modifying all the arguments private static void foo(int p_int, String p_str, ClassA p_obj) { p_int = p_int + 100; p_str = p_str + "xyz"; p_obj.m_int = 23; } public static void main(String args[]) { int some_int = 10; String some_str = "abc"; ClassA some_obj = new ClassA(-1); System.out.print("Before call to foo(): "); System.out.println(some_int + ", " + some_str + ", " + some_obj); foo(some_int, some_str, some_obj); System.out.print("After call to foo(): "); System.out.println(some_int + ", " + some_str + ", " + some_obj); } } Output: Before call to foo(): 10, abc, -1 After call to foo(): 10, abc, 23

2

Passage de paramètres en Java
Question: En java, les paramètres sont-ils passés par référence ou par valeur? Réponse pratique: En général, les objets de type “builtin” (e.g. int, String) se comportent comme s’ils étaient passés par valeur et les autres par référence. Réponse complète: Tous sont passés par référence MAIS Java implémente la notion d’immutabilité, qui signifie qu’un objet ne peut-être modifié après sa création.

3

Swap: Tentative #1 public class SwapTest1 { } Output: a: 1 b: 2 a: 1 b: 2 --> Aucun effet apparent!

private static void Swap(Integer a,Integer b){ Integer x=b; b=a; a=x; } public static void main(String args[]) { Integer a=1,b=2; System.out.println("a: "+ a + " b: "+ b); Swap(a,b); System.out.println("a: "+ a + " b: "+ b); }

4

Swap: Tentative #2 public class SwapTest2 { } static class Pair { int a,b; } public Pair(int val1,int val2) { a=val1; b=val2; } public String toString() { return "a: " + a + " b: " + b; } public void

en relation

  • Jajaja
    368 mots | 2 pages
  • Jisel
    2545 mots | 11 pages
  • Jecpas
    3110 mots | 13 pages
  • Jdean
    265 mots | 2 pages
  • Jndozep
    907 mots | 4 pages
  • Jussie
    33067 mots | 133 pages
  • jvbjew
    807 mots | 4 pages
  • Jeqia
    318 mots | 2 pages
  • Jesuisbien
    1851 mots | 8 pages
  • Yvain
    764 mots | 4 pages
  • Jalais
    485 mots | 2 pages
  • Jygjdyfu
    273 mots | 2 pages
  • Jerem
    5670 mots | 23 pages
  • Jferiou
    987 mots | 4 pages
  • Yvain
    9566 mots | 39 pages