class Test
{
public static void main(String[] args)
{
Queue q=new Queue();
Producer p=new Producer(q);
Consumer c=new Consumer(q);
p.start();
c.start();
}
}
class Producer extends Thread
{
Queue q; //
Producer(Queue q)//这里为什么会与语句
{ //Queue q=new Queue();
this.q=q; //一样呢
} //
public void run()
{
for(int i=0;i <10;i++)
{
q.put(i); //上边没有创建对象q,方法q.put(i);也能正常使用是为什么?
System.out.println( "Producer put "+i);
}
}
}
class Consumer extends Thread
{
Queue q; //
Consumer(Queue q)//还有这里
{ //
this.q=q; //
} //
public void run()
{
while(true)
{
System.out.println( "Consumer get "+q.get());
}
}
}
class Queue
{
int value;
public void put (int i)
{
value=i;
}
public int get()
{
return value;
}
}
------解决方案--------------------
这。。。。。。
这问题,我实在无法回答。。。。。。。
我只知道类里面都有一个叫构造函数的和叫类成员的。。。。
另外呢,还有一种说法叫方法参数的。。。。。
LZ,你的问题不好整啊~~~我只能帮你这些了~~~
------解决方案--------------------
你怎么看的这么快啊
好像连java 的基础知识都没掌握好就去看线程去了
------解决方案--------------------
飘过......
------解决方案--------------------
我是这样认为的 你的方法应该是先执行main()方法 才执行后面线程的run()方法 你的main()方法 有这句话 Queue q=new Queue(); 说明已经创建了Queue的对象 不知道对不 请看到帖子的人指导
------解决方案--------------------
Producer(Queue q)//这里为什么会与语句
{ //Queue q=new Queue();
this.q=q; //一样呢
} //
应该不一样吧,除非main中刚好有Queue q=new Queue();Producer(q);
而刚好你的main中就是这种情况