Understanding object oriented progrmming with Java - Budd (Addison-Wesley, 2000)