I am learning Java recently, and I came across the notion of package-private
classes, which is the default if we don\'t specify anything. But then I realized:>
Please notice that when you are speaking about classes you have only two options:
The concept of "private class" is meaningless. (Why to make a class that is not used anywhere?!)
So if you have a class for intermediate operations that needn't to be exposed to API users you are supposed to declare it as "package private"
Also when you define many classes in the same source file, only one class is allowed to be public (its name matched the .java file name). If any other class is defined in the same file it must be "package private".