Wie kann das den sein? Komische Variablenbelegung!

Diskutiere Wie kann das den sein? Komische Variablenbelegung! im Java Basics - Anfänger-Themen Bereich.
Status
Nicht offen für weitere Antworten.
X

xip

Hi Ihr,

habe folgendes in einem Programm gefunden:

int[] rgb = new int[3];
raster.getPixel(x, y, rgb);
if (rgb[0] < S_W_Schwelle) {
segmentline = false;
}

was mich daran interessiert ist das Variablenarraay rgb. Das gerade initialiserte Array wird einer Funktion übergeben.
Und nachdem es übergeben wurde hat es Werte!!! Wie kann das den sein. Hört sich ja fast an wie ein Pointer in C++.

Habt ihr dafür eine Erklärung?
 
faetzminator

faetzminator

Die Referenz jeder nicht-primitiven Variable wird übergeben. Wenn du dort was im Speicher änderst, ist das natürlich auch in der aufrufenden Methode anders.
 
X

xip

das würde aber heißen.

public class dsdfsfd {

public static void main(String[] args) {
int hallo = 4;
test2 dings = new test2();
dings.ruck(hallo);
System.out.println(hallo); // das der hier 6 ist, ist er aber nicht!!! Ist immernoch 4

}

}

class test2
{
int ruck(int wert)
{
return wert+2;
}
}

wie kann ich das also verstehen?
 
Noctarius

Noctarius

Ein Array ist eine Referenz auf eine Sammlung von Daten (welche wieder als Referenzen innerhalb des Arrays hinterlegt sind).

Beim Aufruf wird eine neue Referenz erzeugt, welche auf das selbe Objekt zeigt, das übergeben wurde.

Dabei wird aber nur die oberste Instanz als neue Referenz "kopiert". Heißt die Referenz auf die Array-Struktur wird kopiert, nicht aber die inneren Referenzen.
 
faetzminator

faetzminator

nein, da dies ein primitiver Datentyp ist...
aber folgendes fürde funktionieren:
Java:
public static void main(String[] args) {
    int[] hallo = {4};
    test(hallo);
    System.out.println(hallo[0]);
}

private static void test(int[] args) {
    args[0] += 2;
}
 
X

xip

achwas, das kannte ich nicht. Ist ja ein Ding.

OK, vielen Dank euch!
 
Thema: 

Wie kann das den sein? Komische Variablenbelegung!

Status
Nicht offen für weitere Antworten.
Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben