I\'m trying to understand object orientation. I understand it a little bit of course, but sometimes I\'m not 100% clear. How do you decide what should be turned into an object (
I answered this already in another question
Code objects are not related to tangible real-life objects; they are just constructs that hold related information together.
Don't believe what the Java books/schools teach about objects; they're lying.
Just write something that gets the job done, even if it's ugly, then refactor continuously:
But:
If you don't end up with massive (and useless) class hierarchy, then you have done a good job, producing elegant and clean code.
Remember: OOP is a means, not an end.