A public class or interface is accessible to code outside that package.
Types that are not public have package scope; they are available to all other code in the same package, but are hidden outside the package and even from code in nested packages.
Package scope is the default if public/protected/private are not declared.