日期:2014-05-20  浏览次数:20753 次

关于创建对象的问题
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中就是这种情况