Classes within the same package usually share the same or similar functionalities, or they together achieve a set of similar functionalities. In addition, classes within the same package can access all package-private variables (i.e., those variables defined without public
, protected
, and private
) within their package.
As for naming, while Oracle has defined a convention for java naming packages, it is developer's responsibility to have a clear naming for each package. In your case, it is better to have some descriptions to describe the utilities and tools. Here are some examples:
foo.connection.tools
foo.string.utils
In this way, users can know the tools is for connections, utils is for string manipulations.