黑马程序员技术交流社区

标题: 求助线程问题,写的代码编译不通过 不知道错在哪了? [打印本页]

作者: 梦里听传说    时间: 2014-8-12 15:33
标题: 求助线程问题,写的代码编译不通过 不知道错在哪了?
class  demo
{
public static void main(String[] args)
{
  R r =new R();
  la in=new la(r);
  yun to=new yun(r);
  Thread t1=new Thread(in);
  Thread t2=new Thread(to);
  t1.start();
  t2.start();
}
}
class R
{
private String name;
private int gonghao=1;
private boolean biaoji;
public synchronized void lajin(String name)
{
  while(biaoji)
  {
   try
   {
    this.wait();
   }
   catch(Exception e)
   {
   }
   
  }
  this.name=name+"...."+gonghao++;
  System.out.println(Thread.currentThread().getName()+"...拉煤者..."+this.name);
  biaoji=true;
  this.notifyAll();
}
public synchronized void lachu()
{
   while(!biaoji)
   {
    try
    {
     this.wait();
    }
    catch(Exception e)
    {
    }
   
   }
  System.out.println(Thread.currentThread().getName()+"...运走煤者..."+this.name);
  biaoji=false;
  this.notifyAll();
}

}
class la implements Runnable
{
private R r;
la(R r)
{
  this.r=r;
}
public void run()
{
  while (true)
  {
   R.lajin("煤");
  }
}
}
class yun implements Runnable
{
private R r;
yun(R r)
{
  this.r=r;
}
public void run()
{
  while (true)
  {
   R.lachu();
  }
}
}

---------------------------------------------------------------------------------------------下面是编译器报的错误,我感觉我代码没问题啊:Q
lamei01.java:72: 错误: 无法从静态上下文中引用非静态 方法 lajin(String)
                        R.lajin("煤");
                         ^
lamei01.java:87: 错误: 无法从静态上下文中引用非静态 方法 lachu()
                        R.lachu();


作者: pengyu1801    时间: 2014-8-12 15:49
把非静态改成静态就好了,或者创建对象,在调用,都可以
作者: 梦里听传说    时间: 2014-8-12 16:03
pengyu1801 发表于 2014-8-12 15:49
把非静态改成静态就好了,或者创建对象,在调用,都可以

对象已经创建了啊 ,要是改为静态 怎么改 这代码就整个错了啊
作者: 梦里听传说    时间: 2014-8-12 16:09
pengyu1801 发表于 2014-8-12 15:49
把非静态改成静态就好了,或者创建对象,在调用,都可以

你看我写的主函数,我已经创建了我要引用的 R的对象 并且 把对象又传给了 实现 Runnable 类里的方法,我又写了一遍 还是这样的错误 无语了
作者: 梦里听传说    时间: 2014-8-12 16:13
我自己找出来,我知道我错在哪了! 我不该用类名调用 .....:L
作者: pengyu1801    时间: 2014-8-12 18:16
梦里听传说 发表于 2014-8-12 16:13
我自己找出来,我知道我错在哪了! 我不该用类名调用 .....

              嗯嗯。。
作者: More    时间: 2014-8-12 18:20
不就是静态的问题吗  你把变量找到看看就行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2