this might seem like a dumb question to some, but bear with me please.
I understand that when a project is large or massive with multiple similar classes for e.g. Data Access Objects and Services etc, it is helpful for the developers if these classes are organized in their own packages, for easier visualization of the project structure, as well as keeping a neat organized state of the project.
Protected classes can only be accessed by those classes in the same package, giving some security to the accessibility of those classes.
Finally my question is, is there any other reason than those mentioned above, why one should have different packages in the project? When talking about smaller projects, which can have fewer classes and simpler functionalities, will packaging classes in similar fashion as is usually done in larger project structures give any additional benefits?