Practical object - oriented development in C++ and Java - Horstmann, Cay S.