2 superhjr superhjr 于 2018.02.01 11:05 提问

java 在一个类中定义一个线程,这个线程可以对着各类中的对象进行操作

假设定义了一个A类,这个A类中有一个Jtextarea B, 定义的新线程为C。现在开启了主线程,在开启C线程,这个C线程就是相对主线程当中的B进行操作

9个回答

qq_31800771
qq_31800771   2018.02.01 11:17
已采纳

你可以在线程中构造方法里,传入Object对象,这样你的run方法就可以对Object也就是传过来的对象进行操作(先强转)

qq_34614587
qq_34614587   2018.02.01 11:05

描述的内容有点歧义,不易理解 重新描述一下

stockhold110119
stockhold110119 楼上正解
4 个月之前 回复
superhjr
superhjr 假设定义了一个A类,这个A类中有一个Jtextarea B, 定义的新线程为C。现在开启了主线程,在开启C线程,这个C线程就是相对主线程当中的B进行操作
4 个月之前 回复
JavaQuant
JavaQuant   2018.02.01 11:21

可以这样的?还能这样操作么

u014458238
u014458238   2018.02.01 11:22

线程的构造方法定义一个对象类型的参数,执行线程时可以获取到对应的对象属性和方法

qq_31962253
qq_31962253   2018.02.01 11:23

你可以在线程中构造方法里,传入Object对象,这样你的run方法就可以对Object也就是传过来的对象进行操作

superhjr
superhjr 是在定义run方法的时候吗?
4 个月之前 回复
springyh
springyh   2018.02.01 11:28

开启线程,都是在run()方法中运行的,在C类中继承Thread或者runnable接口,重写run()方法,调用业务逻辑

qq_27718453
qq_27718453   2018.02.01 14:03

写代码不一定要按照这样那样的规则来(自己写的玩就更随便了),只要满足你的需求就行,一个线程想要操作一个对象必定是要拿到这个对象,可以用构造传参数的方式,也就是在自己定义的线程类中定义个属性,new的时候赋值,就能拿到了。
要是有很多对象你要在这个线程中处理,直接写个变量类要用的对象全扔进去,线程拿到这个对象里边的数据还不是随便拿。
总之一个要点就是要拿到要处理的对象的指针,怎么拿方法有N种。

qq_17172075
qq_17172075   2018.02.01 18:56

B定义成A中的全局变量不就可以操作了吗,代码都写在A类中

u014205434
u014205434   2018.02.02 15:58

Jtextarea B 定义为静态的,直接现在线程中 new A 在操作 B 就可以了。多线程要考虑锁

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!