// reuse/Car.java // (c)2021 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://OnJava8.com for more book information. // Composition with public objects class Engine { public void start() { } public void rev() { } public void stop() { } } class Wheel { public void inflate(int psi) { } } class Window { public void rollup() { } public void rolldown() { } } class Door { public Window window = new Window(); public void open() { } public void close() { } } public class Car { public Engine engine = new Engine(); public Wheel[] wheel = new Wheel[4]; public Door left = new Door(), right = new Door(); // 2-door public Car() { for (int i = 0; i < 4; i++) wheel[i] = new Wheel(); } public static void main(String[] args) { Car car = new Car(); car.left.window.rollup(); car.wheel[0].inflate(72); } }