thinking Java book ch16 end