Java : an object-oriented language - SMITH, MICHAEL A. (McGraw Hill, 2000)