This topic has been discussed many-a-times 'round these parts before. Try a quick search on this forum, the SCJP forum, and the OO, Patterns, UML and Refactoring forum. Note that the search page link is at the top right of this page. Good luck.
Try 100 things. 2 will work out, but you will never know in advance which 2. This tiny ad might be one: