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?
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