首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 坦克大戰導彈靜態字段導致單發:移除 static 修飾實例化屬性

     編輯:程式設計綜合問答

問題代碼

public class Missile {
    static int x, y;           // 錯誤:所有導彈共享座標
    static Tank.Direction dir; // 錯誤:所有導彈共享方向
    // ...
}

原因

`static` 字段屬於**類**,所有 `Missile` 實例共享同一組 `x,y,dir`,導致後發導彈覆蓋前者座標,視覺上只有一發。

修正

public class Missile {
    int x, y;                  // 實例字段
    Tank.Direction dir;        // 實例字段
    int X_SPEED = 1, Y_SPEED = 1, w = 10, h = 10;
    // ...
}

驗證

修改後 `List` 中每顆導彈獨立運動,可同時存在多發。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved