Understanding object-oriented programming with Java. - Budd Timothy (2000)