Thinking in java 4th part3En Version