This is in no way a comprehensive discussion on Java and OO Best Practices. This is a subset of the knowledge we pass around with each other. All of this is subject to programmer opinion and there's a lot more that needs to be learned.
- duplicate code Have you ever copy-pasted your code? Follow the "Once and Only Once" rrule.
- accessible fields
Tight coupling, corruptible, inflexible. Should have accessors and mutators. Problems with threading.
- large class
A class should only be doing one thing. Follow the "one responsibility rule."
- large method - using magic literals - unnecessary class/instance variables
If it's only used in one method, make it local
- Initializing strings with "new" - Using floats and doubles for currency calculations - Returning null - Subclassing for functionality - Muffling exceptions - Unexceptional exceptions - Excessive use of switches - Middle man: methods that just delegate to other classes. Case of over-design.
Note to self: should have webcam-based project that tracks red laser pointer.