What is the default access modifier in Java?

yrazlik picture yrazlik · Apr 23, 2013 · Viewed 213.6k times · Source

What is the default access modifier for a method or an instance variable if I do not state it explicitly?

For example:

package flight.booking;

public class FlightLog
{
    private SpecificFlight flight;

    FlightLog(SpecificFlight flight)
    {
        this.flight = flight;
    }
}

Is the access modifier of this constructor protected or package? Can other classes in the same package, which is flight.booking, call this constructor?

Answer

Suresh Atta picture Suresh Atta · Apr 23, 2013

From Java documentation

If a class has no modifier (the default, also known as package-private), it is visible only within its own package (packages are named groups of related classes — you will learn about them in a later lesson.)

At the member level, you can also use the public modifier or no modifier (package-private) just as with top-level classes, and with the same meaning.

Full story you can read here (Which I wrote recently):

http://codeinventions.blogspot.com/2014/09/default-access-modifier-in-java-or-no.html