我正在嘗試製作Android遊戲 我的主類中有一個位圖和畫布實例。Android類實例的問題
我有另一個實例,可以說,渲染類。 該渲染器類在同一個包中,但不在我的主類的子類中。
如果我將位圖和畫布實例傳遞給該渲染器類的方法,並且該方法會將傳遞的位圖繪製到傳遞的畫布上,是傳遞實際實例還是創建新實例副本然後傳遞?那麼,我已經嘗試過,看到實際情況正在通過。因爲我看到位圖被繪製到畫布上。
這是我的問題,爲什麼通過實際的實例? 如果是這樣的 - >
public class instanceTest
{
static int num;
static void numIncrementor(int number)
{
number++;
}
public static void main(String[] args)
{
num = 0;
numIncrementor(num);
System.out.println(num);
}
}
在這裏,當我打印次數,我仍然會得到0,但與其他位圖和帆布的事情,我做派的實際情況。這讓我非常困惑。有人可以解釋嗎? 或者不同於原始類型的類對象總是這樣嗎?它會讓垃圾收集器變得瘋狂嗎?
在此先感謝您,如果您不瞭解我的英文,請告訴我,並且我會在此澄清僞代碼;
我不太清楚你在這裏問什麼,但如果你想打印出來是1,你需要添加「num = number;」在數字++之後(或者甚至不需要numIncrementor的參數,只需將num ++放在方法中)。我可以建議你發佈你的僞代碼,因爲我不明白你的問題。它看起來像你正試圖設置並獲得另一個類中的靜態字段。如果是這種情況,請參閱http://stackoverflow.com/questions/3239039/set-value-of-private-static-field。您可能還想閱讀Java http://javadude.com/articles/passbyvalue.htm中的指針 –