菜鸟线程问题。

Z8157522 2008-02-09 10:01:24
反复在看这段代码
class...{.//main...}
class Quntity{...//定义get(),put()方法..}
class consumer implements Runnable
{
Quantity q; //在这里创建这个对象是最不理解的,main函数里有Quantity q=new Quantity()了么?这句的意思和用法是?
consumer (Quantity q)
{
this.q=q /*this的用法,很多人都在问。我的理解是this.q是实参,后面的q是形参,在重名的时候需要这个句子,但是有的程序里面就没有这样写的,请问有更好的解答么?偏重于这句的用法,该什么时候用*/
new Thread(this,"Consumer").start();/*这一句里this是指当前对象吧?指q么?后面为什么要加“consumer”?在main函数里,很多例子里是在main函数里调用start().为什么要在这里调用?如果要放在main里调用,应该怎么写?*/
}

}
public void run(){.....}
问题多了点,一个菜鸟的思考。。。。如果哪位高人能帮我把整个思路解释一下,将不胜感激。
并请指出我是在哪方面的理解不足,我再去看。谢谢!
...全文
74 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zapdos 2008-02-09
  • 打赏
  • 举报
回复
1、看一般的JavaBean就知道,这样写是为了方便传值,比如
private String s;
public void setS(String s){
this.s = s;
}
public String getS(){
return s;
}

2、this一般指已经实例化的对象,也可以用来调用构造函数
this.q=q 就是说假如你new了一个consumer ,那么this.q就是指Quantity q;的这个q

3、 new Thread(this,"Consumer").start();

Thread
public Thread(Runnable target,
String name)分配新的 Thread 对象。这种构造方法与 Thread(null, target, name) 具有相同的作用。

参数:
target - 其 run 方法被调用的对象。
name - 新线程的名称。
另请参见:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)


this当然就是指这个Runnable,即consumer,启动这个线程而已

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧