Harnessing Java 7: A Comprehensive Approach to Learning Java