thinkingjava3sourcecode(chapter2,3)