Introduction to Java programming : comprehensive version - Liang, Y. Daniel (Pearson Education Limited, 2015)