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;
}

}

解决方案 »

  1.   

    最好再看看面向对象的书籍和相关语法。你使用new操作符来创建对象,和传递应用是不一样的。int i=1;

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

  2.   

    我说的是实现的功能 要不下边的 q.put(i); 将不能调用
      

  3.   

    换句话说就是这里没有创建对象下边的那个方法q.put(i);也能正常使用是为什么