我目前正在用Java編寫一個程序,其中需要將產生新對象的位置的移動對象設置爲其最終位置,以便它們不再受鍵盤命令的影響。我熟悉將實例變量聲明爲final,但是我們正在尋找一種在實例化後鎖定變量的方法。如何將Java中的變量的當前值聲明爲final?
即
boolean beentype = StdDraw.hasNextKeyTyped();
if (beentype) {
if (this.y > 1) {
char key = StdDraw.nextKeyTyped();
char a1 = 'a';
char d = 'd';
if (key == a1 && this.x > 2 && position [i-1][j] == 0) {
this.x = this.x - movePerCall;
j = j + 1;
position[i + 1][j - 1] = 0;
position[i][j - 1] = 0;
position[i][j] = 1;
}
if (key == d && this.x < 19 && position [i-1][j] == 0) {
this.x = this.x + movePerCall;
j = j - 1;
position[i + 1][j + 1] = 0;
position[i][j + 1] = 0;
position[i][j] = 1;
}
}
,一旦變量已履行了isDone布爾要求,我想this.x和this.y不再變化 謝謝
您無法做出從非最終變爲最終變量的變量。不過,您可以使用非最終變量的值來初始化最終變量。 –
您是否考慮將x和y移動到另一個(新)班,讓他們變得私密,而不是提供二傳手?所以你可以讓它們最終並在構造函數中設置它們的值。 – Jaumzera
如果您有一個名爲「finalPosition」的字段,並將當前位置與該位置進行比較,如果您在那裏則不會移動該怎麼辦? –