Scopes of Member Names in Java
public: Accessible inside & outside of its class and subclasses.
private: Accessible only within its class definition.
protected: Accessible within its class definition and those of its descendant classes.
package: Accessible within the same package (possibly from otherwise unrelated classes).