Understanding object-oriented programming with Java - BUDD (Addison-Wesley, 2000)