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

为什么会和创建对象的语句是一样的呢 ?
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);
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;
}

}

------解决方案--------------------
不一样,一个是创建新对象,一个是传递一个引用
------解决方案--------------------
最好再看看面向对象的书籍和相关语法。你使用new操作符来创建对象,和传递应用是不一样的。

int i=1;

put(int i)
{
}
中i的作用一样吗?