thinking in java chapter 02