线程小问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 10:53:31
写了一小段程序 报错 不会改 请高手帮助

package xiancheng;

public class xiancheng11 {
public static void main(String args[]){
shangdian sb=new shangdian(11);
Goumai n1=new Goumai(1,sb,"n1");
Goumai n2=new Goumai(2,sb,"n2");
n1.start();
n2.start();
}
class shangdian{
int kucun;
shangdian(int i){
this.kucun=i;
}
public void goumai(int i){
try
{
Thread.sleep(1000);
kucun=kucun-i;
System.out.println("购买:"+i);
System.out.println("剩余:"+kucun);
}
catch(Exception e)
{
e.printStackTrace();
}

}
}
class Goumai extends Thread{
int i;
shangdian sb;
String name="";
public Goumai(int i,shangdian sb,String name){
this.i=i;
this.sb=sb;
this.name=name;
}
public void run(){
sb.goumai(i);
}
}
}
报错:

在shangdian 和 Goumai 前面加上static
public class xiancheng11 {
static class shangdian{
int kucun;
shangdian(int i){
this.kucun=i;
}
static class Goumai extends Thread{
int i;
shangdian sb;
String name="";
public Goumai(int i,shangdian sb,String name){
this.i=i;
this.sb=sb;
this.name=name;
}
public void run(){
sb.goumai(i);
}
}
public static void main(String args[]){
shangdian sb=new shangdian(11);
Goumai n1=new Goumai(1,sb,"n1");
Goumai n2=new Goumai(2,sb,"n2");

n1.start();
n2.start();
}

public void goumai(int i){
try
{
Thread.sleep(1000);
kucun=kucun-i;
System.out.println("goumai:"+i);
System.out.println("shengyu:"+kucun);
}
catch(Exception e)
{