Introduction to Java programming : comprehensive version - Liang, Y. Daniel (Pearson Prentice Hall, 2005)