0
所以在下面的代碼中,如果exampleVar第一次打印出來就是零,那麼一旦再次打印出來,會是兩個是嗎?我試圖不使用全局變量,除此之外,我想不出另一種方式。將一個變量傳遞給一個私有方法會給你的範圍正確的變量?
public int method ... {
int exampleVar = 0;
System.out.println(exampleVar); // would be zero
pmethod(exampleVar,);
System.out.println(exampleVar); // would be two?
}
private int pmethod(int exampleVar) {
exampleVar++;
if(exampleVar != 2){
pmethod(exampleVar);
}
}
回答人都在說這個人是一個duiplicate是無效的,因爲這個問題的答案雖然正確過於嘈雜。使用foo完全抽象和令人困惑的例子。作爲一名Java新手,我已經拒絕了這個問題,因爲它不是一個清晰明確的答案。
所以我路過exampleVar到私有方法,並增加其在公共方法不會改變exampleVar的價值? –
即使該方法是'public',它也不會在第一個'public'方法中更改它的值,因爲這是第一個方法的局部變量。要從第二個方法獲取值,可以返回值並將其分配給第一個方法中的'exampleVar'。基本上,你不會共享變量,除非它是全球性的。 – Maryam
我看到那麼我將不得不修改代碼,以便在某些時候 我們pmethod看到例如VAR = pmethod(...)用一個return語句 –