Driver.java:
public class Driver
{
private String name; // For debugging purposes
private Car car;
public Driver(String aName)
{
name = aName;
}
public Car getCar()
{
return car;
}
public String getName()
{
return name;
}
public void setCar(Car aCar)
{
Car oldCar = car;
car = aCar;
if (oldCar != null && oldCar.getDriver() == this)
{
oldCar.setDriver(null);
}
if (aCar != null && aCar.getDriver() != this)
{
aCar.setDriver(this);
}
}
// For debugging purposes
public void print()
{
System.out.print("Driver's name is " + name);
if (car == null)
{
System.out.println(" and has no car");
}
else
{
System.out.println(" and has car " + car.getName());
}
}
}
{
private String name; // For debugging purposes
private Car car;
public Driver(String aName)
{
name = aName;
}
public Car getCar()
{
return car;
}
public String getName()
{
return name;
}
public void setCar(Car aCar)
{
Car oldCar = car;
car = aCar;
if (oldCar != null && oldCar.getDriver() == this)
{
oldCar.setDriver(null);
}
if (aCar != null && aCar.getDriver() != this)
{
aCar.setDriver(this);
}
}
// For debugging purposes
public void print()
{
System.out.print("Driver's name is " + name);
if (car == null)
{
System.out.println(" and has no car");
}
else
{
System.out.println(" and has car " + car.getName());
}
}
}
Car.java:
public class Car
{
private String name; // For debugging purposes
private Driver driver;
public Car(String aName)
{
name = aName;
}
public Driver getDriver()
{
return driver;
}
public String getName()
{
return name;
}
public void setDriver(Driver aDriver)
{
Driver oldDriver = driver;
driver = aDriver;
if (oldDriver != null && oldDriver.getCar() == this)
{
oldDriver.setCar(null);
}
if (aDriver != null && aDriver.getCar() != this)
{
aDriver.setCar(this);
}
}
// For debugging purposes
public void print()
{
System.out.print("Car's name is " + name);
if (driver == null)
{
System.out.println(" and has no driver");
}
else
{
System.out.println(" and has driver " + driver.getName());
}
}
}
{
private String name; // For debugging purposes
private Driver driver;
public Car(String aName)
{
name = aName;
}
public Driver getDriver()
{
return driver;
}
public String getName()
{
return name;
}
public void setDriver(Driver aDriver)
{
Driver oldDriver = driver;
driver = aDriver;
if (oldDriver != null && oldDriver.getCar() == this)
{
oldDriver.setCar(null);
}
if (aDriver != null && aDriver.getCar() != this)
{
aDriver.setCar(this);
}
}
// For debugging purposes
public void print()
{
System.out.print("Car's name is " + name);
if (driver == null)
{
System.out.println(" and has no driver");
}
else
{
System.out.println(" and has driver " + driver.getName());
}
}
}
MainProgram.java:
public class MainProgram
{
/**
* @param args
*/
public static void main(String[] args)
{
Driver theDriver = new Driver("Troy McClure");
Car car1 = new Car("Gas Guzzler");
Car car2 = new Car("Electric");
theDriver.setCar(car1);
theDriver.print();
car1.print();
car2.print();
// theDriver.setCar(null);
//
// System.out.println();
// theDriver.print();
// car1.print();
// car2.print();
car2.setDriver(theDriver);
System.out.println();
theDriver.print();
car1.print();
car2.print();
}
}
{
/**
* @param args
*/
public static void main(String[] args)
{
Driver theDriver = new Driver("Troy McClure");
Car car1 = new Car("Gas Guzzler");
Car car2 = new Car("Electric");
theDriver.setCar(car1);
theDriver.print();
car1.print();
car2.print();
// theDriver.setCar(null);
//
// System.out.println();
// theDriver.print();
// car1.print();
// car2.print();
car2.setDriver(theDriver);
System.out.println();
theDriver.print();
car1.print();
car2.print();
}
}