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

Cam picture Cam · Mar 28, 2010 · Viewed 48.5k times · Source

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?

Answer

Jason S picture Jason S · Mar 28, 2010

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
{
    ...;
}