Ich bin mir nicht sicher, was die Unterschiede zwischen den beiden Codebeispielen unten sind. (Die erste Probe verwendet Picture.java vom standard library):Wie werden Werte in Array-Methoden gespeichert?
//chooses a photo from your computer and reads RGB values from it
Picture mypic = new Picture(FileChooser.pickAFile());
Pixel pixelArray [] = mypic.getPixels();
pixelArray[0].setRed(255);
Pixel currentPixel = pixelArray[0];
currentPixel.setRed(0);
pixelArray[0].getRed()
output: 0 < == Änderungen in variable currentPixel ändert den Wert in pixelarray [0], ohne explizite Angabe.
int array[] = new int[4];
array[0] = 1;
int firstElement = array[0];
firstElement = 9;
array[0]
output: 1 < == Änderungen in dem variablen firstelement Wert nicht in dem Array ändern [0]
Warum wird der erste Codebeispiel Ausgang 0 anstelle von 255, und warum gibt das zweite Codebeispiel 1 anstelle von 9 aus?
Der zweite arbeitet mit einem primitiven Wert, der erste mit einem * Referenz * -Typ. –
Danke für die schnelle Antwort. Ich verstehe, was Sie sagen, aber nicht genug, um auf den Unterschied im Code hinzuweisen, wenn ich dazu aufgefordert würde. Hat es mit der Pixel-Klasse zu tun und der Tatsache, dass ich Methoden verwenden muss? – Halcykon
Grundsätzlich ja. Ein "int" ist eine feste 32-Bit-Größe, ein Referenztyp ist ein beliebiges "Objekt" (oder eine Unterklasse, einschließlich "Pixel"). –