I think in this case there is no need to declare a public constructor since the class is not accessible outside the package anyway. But is there some hidden impact when the
No, you don't have to declare the public constructor; package private constructors will be just as usable. Classes outside the package wouldn't be able to use the constructor anyway, since they can't see the class.