反复在看这段代码
class...{.//main...}
class Quntity{...//定义get(),put()方法..}
class consumer implements Runnable
{
Quantity q;  //在这里创建这个对象是最不理解的,main函数里有Quantity q=new Quantity()了么?这句的意思和用法是?
consumer (Quantity q)
 {
 this.q=q  /*this的用法,很多人都在问。我的理解是this.q是实参,后面的q是形参,在重名的时候需要这个句子,但是有的程序里面就没有这样写的,请问有更好的解答么?偏重于这句的用法,该什么时候用*/
 new Thread(this,"Consumer").start();/*这一句里this是指当前对象吧?指q么?后面为什么要加“consumer”?在main函数里,很多例子里是在main函数里调用start().为什么要在这里调用?如果要放在main里调用,应该怎么写?*/
 }}
public void run(){.....}
问题多了点,一个菜鸟的思考。如果哪位高人能帮我把整个思路解释一下,将不胜感激。
并请指出我是在哪方面的理解不足,我再去看。谢谢!

解决方案 »

  1.   

    1、看一般的JavaBean就知道,这样写是为了方便传值,比如
    private String s;
    public void setS(String s){
      this.s = s;
    }
    public String getS(){
      return s;
    }2、this一般指已经实例化的对象,也可以用来调用构造函数
    this.q=q 就是说假如你new了一个consumer ,那么this.q就是指Quantity   q;的这个q3、 new   Thread(this,"Consumer").start();Thread
    public Thread(Runnable target,
                  String name)分配新的 Thread 对象。这种构造方法与 Thread(null, target, name) 具有相同的作用。 参数:
    target - 其 run 方法被调用的对象。
    name - 新线程的名称。
    另请参见:
    Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)
    this当然就是指这个Runnable,即consumer,启动这个线程而已