关于马士兵坦克大战教程里面的问题,为什么添加一个static后会产生那样的影响,请看代码

importjava.awt.*;publicclassMissile{publicstaticfinalintX_SPEED=15;publicstaticfinali... import java.awt.*;

public class Missile {
public static final int X_SPEED = 15;
public static final int Y_SPEED = 15;

public static final int WIDTH = 6;
public static final int HEIGHT = 6;

private int x, y;//不能声明为static,
Tank.Dirction dir;

public Missile(int x, int y, Tank.Dirction dir) {
this.x = x;
this.y = y;
this.dir = dir;
}

public void Draw(Graphics g) {
Color c = g.getColor();
g.setColor(Color.black);
g.fillOval(x, y, WIDTH, HEIGHT);
g.setColor(c);

move();
}

public void move() {
// 根据方向移动Tank的位置
switch (dir) {
case U:
y -= Y_SPEED;
break;
case RU:
x += X_SPEED;
y -= Y_SPEED;
break;
case R:
x += X_SPEED;
break;
case RD:
x += X_SPEED;
y += Y_SPEED;
break;
case D:
y += Y_SPEED;
break;
case LD:
x -= X_SPEED;
y += Y_SPEED;
break;
case L:
x -= X_SPEED;
break;
case LU:
x -= X_SPEED;
y -= Y_SPEED;
break;
}
}

}
我把第6行改为private static int x, y结果就变了,如果我的提问还不够详细,我可以继续上代码
还有两个类的代码贴不出来
是第7行
展开
 我来答
lqc546623227
2012-10-25 · 超过10用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:30.5万
展开全部
static可以理解为该类所有对象都共享这两个属性,不是是static的就是各自有一份,你都声明为static了那你所有的坦克都是同样的坐标,你怎么打啊
追问
我这个是1.3版的,只有一辆坦克,这个是子弹类里的子弹坐标,你可不可以先在你机器上运行看看结果再给我讲解下啊?
北京金瑞博
2024-08-14 广告
北京金瑞博企业咨询服务有限公司由张磊和合伙人共同创立,专注于为全球制药公司提供法规事务(药品注册)、GMP合规、质量管理数字化、市场准入以及相关工作。我们立志成为国内知名、国际有影响力的专家型咨询公司,为客户合规带来改变,对行业合规产生影响... 点击进入详情页
本回答由北京金瑞博提供
蜗居中的蚁族
2012-10-31
知道答主
回答量:57
采纳率:0%
帮助的人:20.9万
展开全部
静态域是属于类的域,所有的对象都共享的域,
非静态的是对象的域,不是共享的.你想一下把你自己的钱拿出来给大家共享的话.你觉得跟你自己花感觉能一样吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式