Search code examples
javaclassprotected

How to protect classes so they are not visible outside their package


I'd like to be able to have two "protected" classes in my package. That is, I do not want files outside of my package to see them as visible - they will be for internal use within the package only.

How can I do this?


Solution

  • Just leave out all keywords. The default visibility is package-private, viewable within the package only.

    e.g.:

    // class Foo is public
    public class Foo
    {
        final private Bar bar = ...;
    }
    
    // class Bar is package-private
    // (visible to all classes in the package, not visible outside the package)
    class Bar
    {
        ...;
    }