以下の2つのコードサンプルの違いはわかりません。 (最初のサンプルがstandard libraryからPicture.javaを使用):値は配列メソッドにどのように格納されますか?
//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()
出力:変数currentPixel 0 < ==変更は、明示的な宣言なし[0]画素アレイ内の値を変更します。
int array[] = new int[4];
array[0] = 1;
int firstElement = array[0];
firstElement = 9;
array[0]
出力:変数firstElement 1つの < ==変化が配列に値を変更しない[0]
なぜ最初のコードのサンプル出力0の代わりに255、 2番目のコードサンプルが9の代わりに1を出力するのはなぜですか?
2つ目はプリミティブ値で動作します。最初は*参照型です。 –
速い応答に感謝します。私はあなたが何を言っているのか理解していますが、私に尋ねられたらコードの違いを指摘するのに十分ではありません。 Pixelクラスと、それにメソッドを使用する必要があるという事実とは関係がありますか? – Halcykon
基本的にはい。 'int'は固定された32ビット量であり、参照型は' Object'(または 'Pixel'を含むサブクラス)です。 –