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的作用一样吗?