“客车司机”、“乘客”和“售票员”

2025-04-24 20:31:10
推荐回答(1个)
回答1:

//以下系最基本功能 ,一定有有要完善空间。但我的眼训所以写了以下的功能。希望帮到你

class Passenger implements Runnable {//乘客
private busDemo bus = null ;
public Passenger(busDemo bus){
this.bus = bus ;
}

public void run(){
for(int i = 0 ; i < 5 ; i++){//每个次上车人数5人
try {
Thread.sleep(3000) ; //每上车一个人都要停3秒,才可以上下一个人
} catch (InterruptedException e) {
e.printStackTrace();
}
this.bus.setTicket(1) ; //买票
if(bus.getTicket() == 1){ //如果有买票的人
this.bus.setPerson("p[" + i + "]") ; //就可以上车并有票
}
}
}
}

class Conductor implements Runnable {//售票员
private busDemo bus = null ;
public Conductor(busDemo bus){
this.bus = bus ;
}

public void run(){
for(int i = 0 ; i < 5; i++){ //每站下车人数5人
try {
Thread.sleep(3000) ; //每下车一个人都要停3秒,才可以上下一个人
} catch (InterruptedException e) {
e.printStackTrace();
}
if(this.bus.getTicket() == 0){ //没买票
this.bus.setTicket(1) ;
System.out.println("下车的人是:p[" + this.bus.getPerson() + "]") ;
}
}
}
}

public class busDemo { //车

private String person = "p1"; //乘客1
public void setPerson(String person) {
this.person = person;
}
public String getPerson() {
return person;
}
private int ticket = 0 ; //车票数
public void setTicket(int ticket) {
this.ticket = ticket;
}
public int getTicket() {
return ticket;
}

public static void main(String[] args) {
busDemo bus = new busDemo() ;
Passenger p = new Passenger(bus) ;
Conductor c = new Conductor(bus) ;
new Thread(p).start() ;
new Thread(c).start() ;
}
}