Understanding object-oriented programming with Java - Budd, Timothy (Addison-Wesley, 1998)