当前位置: 代码迷 >> J2EE >> 求解,为什么照书上敲的,最后实现的出来是null的空值名呢?是什么地方出了有关问题?求大神指教
  详细解决方案

求解,为什么照书上敲的,最后实现的出来是null的空值名呢?是什么地方出了有关问题?求大神指教

热度:12   发布时间:2016-04-17 23:05:58.0
求解,为什么照书上敲的,最后实现的出来是null的空值名呢?是什么地方出了问题?求大神指教
学生类
public class Student  extends Thread {
private  String studentName;
private  Water water;
public Student(String StudentName ,Water water){
super ();
this.studentName = studentName;
this.water = water ;
}
public void receiveWater(){
System.out.println(studentName+"从教室跑到饮水机");
water.flowWater(studentName);
System.out.println(studentName+"跑回教室");
}
public void run(){
receiveWater();
}
流水的类
public class Water {

int studentNumber;
public synchronized void flowWater(String studentName){
synchronized(this){
++studentNumber;
System.out.println("开始为"+studentName+"流水");
try{
Thread.sleep(3000);
}catch (InterruptedException e ){
e.printStackTrace();
}
System.out.println("结束为"+studentName+"流水");
if(studentNumber<4) {
try{
wait();
}catch (InterruptedException e){
e.printStackTrace();
}
}else {
notifyAll();
}
} }}
}
实现类
public class TestWater {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

Water water = new Water();
Student xiaochang = new Student("小常",water );
Student xiaoshang = new Student("小尚",water );
Student xiaowang = new Student("小王",water );
Student xiaoliu = new Student("小刘",water );

xiaochang.start();
xiaoshang.start();
xiaowang.start();
xiaoliu.start();

}

}

------解决思路----------------------
检查一下大小写的问题。
  相关解决方案