Introduction to Java programming : comprehension version - Liang, Daniel Y. (Prentice Hall, 2011)