Data type definitions (e.g. Enums and Class Definitions) and members may be given an access modifier.
The following access modifiers exist in Java:
public - this means that the data type or member should be accessible by everyone, from anywhere.
private - this means that the data type or member should only be accessible from within the scope of the outermost enclosing context.
protected - this will be explained later and is not important for now.
In addition to these modifiers, the meaning of not having a modifier at all is called package private.
These data types or members are accessible from everywhere in the same package, as if they were public, but inaccessible from outside of that package, as if they were private.
Access modifiers are about syntactic scope, that is, about how code is written and nested.
In particular, any private field can be accessed from any code within the same class, not just from within the same object.