Data abstraction and problem solving with Java : - Carrano, Frank M. (Addison-Wesley, 2001)