JAVA : HOW TO PROGRAM - DEITEL, H M and DEITEL, P J (ND PHI, 2005)