In the few games I have made, my classes are quite jumbled and unordered. I see alot of classes in open source projects that I wouldn't have thought of creating such as an entity class. The way I made my entities was by declaring a new player class.

My suggestion is to read some kind of object-oriented programming tutorial about when to create a class for something and when to create abstract classes/interfaces etc.

If you find something very strange or seemingly unneccessary in any of those tutorials, you probably need more practial experience. Try to build systems and see why they become practical/not practical to expand, maintain, understand etc.

When you get more experience you might want to read about design patterns and other software theory.

For every "rule" about software engineering there is usually a very good reason but sometimes you have to actually experience it yourself first and learn the "hard way". I have built and designed many crappy systems that became a nightmare to understand, maintain and expand , but each time I have learned a lot.

To put it rude, you need to cretae a class when there is something with certain attributes and behaviours so you can "command" it and let it expand by inheritance. However of course krasse's sugestion must be done

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org