Understanding object oriented programming with Java - Budd, Timothy (Massachusetts Addison Wesley Longman, 2000)