📄 taxi.java
字号:
/** * A taxi is able to carry a single passenger. * * @author David J. Barnes and Michael Kolling * @version 2006.03.30 */public class Taxi extends Vehicle{ private Passenger passenger; /** * Constructor for objects of class Taxi * @param company The taxi company. Must not be null. * @param location The vehicle's starting point. Must not be null. * @throws NullPointerException If company or location is null. */ public Taxi(TaxiCompany company, Location location) { super(company, location); } /** * Carry out a taxi's actions. */ public void act() { Location target = getTargetLocation(); if(target != null) { // Find where to move to next. Location next = getLocation().nextLocation(target); setLocation(next); if(next.equals(target)) { if(passenger != null) { notifyPassengerArrival(passenger); offloadPassenger(); } else { notifyPickupArrival(); } } } else { incrementIdleCount(); } } /** * @return Whether or not this taxi is free. */ public boolean isFree() { return getTargetLocation() == null && passenger == null; } /** * Receive a pickup location. This becomes the * target location. * @param location The pickup location. */ public void setPickupLocation(Location location) { setTargetLocation(location); } /** * Receive a passenger. * Set their destination as the target location. * @param passenger The passenger. */ public void pickup(Passenger passenger) { this.passenger = passenger; setTargetLocation(passenger.getDestination()); } /** * Offload the passenger. */ public void offloadPassenger() { passenger = null; clearTargetLocation(); } /** * Return details of the taxi, such as where it is. * @return A string representation of the taxi. */ public String toString() { return "Taxi at " + getLocation(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -