Let us realize a client, CarServices, of the class Car. The class CarServices contains two static methods:
We write the class CarServices, in a file called CarServices.java, as follows:
public class CarServices {
public static void spray(Car car, String color) {
car.setColor(color);
}
public static Car registerAlfa147(String pla, String col) {
return new Car(pla, "Alfa147", col);
}
}
Finally, we realize a class Main, containing a method main, that uses the class Car and the class CarServices. This class will be written in a separate file Main.java:
public class Main {
// auxiliary method
private static void printCarData(Car a) {
System.out.println("Car: " + a.getPlate() + ", "
+ a.getModel()+ ", "
+ a.getColor());
}
// auxiliary method
private static void printOwnerData(Car a) {
System.out.println("Owner: " + a.getOwner().getName() + ", "
+ a.getOwner().getResidence());
}
public static void main(String[] args) {
Car a = new Car("313","Fiat 500","Red and Blu");
printCarData(a);
Person p = new Person("Paperino", "Paperopoli");
a.setOwner(p);
printOwnerData(a);
CarServices.spray(a, "Maranello Red");
printCarData(a);
Car b = CarServices.registerAlfa147("131", "Alfa Red");
printCarData(b);
Person c = new Person("Clarabella", "Topolinia");
b.setOwner(c);
printOwnerData(b);
}
}