Auf Thema antworten

Da Java völlig "Pass-by-Vlaue" ist, müsste der folgende Code


[code]public class Test {

    static void test(int var){

        var = 9;

    }

  

    public static void main(String[] args) {

        int var = 6;

        test(array);

        System.out.println(var);

    }

}

[/code]


als Output "6" liefern. Was er auch tut. Mein Problem ist nun bei Arrays:


[code]public class Test {

    static void test(int[] array){

        array[0] = 9;

    }

  

    public static void main(String[] args) {

        int[] array = new int[90];

        test(array);

        System.out.println(array[0]);

    }

}

[/code]


Das müsste als Output doch "0" liefern. Aber die test()-Methode hat das Array direkt beeinflusst und als Output erscheint "9". Müsste nicht eine Kopie durch pass-by-value an die test()-Methode übergeben worden sein? Wieso wurde das Array trotzdem beeinflusst?



Oben