一个类的两个对象,在线程中改变了其中一个对象中的变量的值为什么另一个对象中的值也变了

 我来答
山水阿锐
2015-06-28 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
public class ThreadTest1 implements Runnable {

protected ThreadTest1 obj = null;

protected int snd = 0;

private boolean isRun = true;

public boolean isRun() {
return isRun;
}

public void stopRun() {
isRun = false;
}

public ThreadTest1() {

}

public ThreadTest1(ThreadTest1 o) {
obj = o;
}

protected void count() {
try {
Thread.sleep(100);
snd += 100;
System.out.println(this.toString() + " started " + snd +
" milisecond");
} catch (Exception e) {}
}

public void run() {
// TODO Auto-generated method stub
while(isRun()) {
count();
}
}

}

//

public class ThreadTest2 extends ThreadTest1 {

public ThreadTest2() {}

public ThreadTest2(ThreadTest1 o) {
super(o);
// TODO Auto-generated constructor stub
}

public void run() {
while(isRun()) {
super.count();
if (snd >= 3000 && obj != null) {
obj.stopRun();
stopRun();
}

}
}

}

//

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadTest1 test1 = new ThreadTest1();
ThreadTest2 test2 = new ThreadTest2(test1);
Thread t1 = new Thread(test1);
Thread t2 = new Thread(test2);
t1.start();
t2.start();
}

}
追问
为什么。谢谢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式