Access Modifiers
- For top level classes, use one of:
public- no modifier (aka default/package-private)
- For attributes, methods, constructors, or nested/inner class use one of:
publicprivate- no modifier (aka default/package-private)
protected
Private
- The access level of a private modifier is only within the class. It cannot be accessed from outside the class.
Default
- aka Package Private
- The access level of a default modifier is only within the package. It cannot be accessed from outside the package. If you do not specify any access level, it will be the default.
- Java does not have concept of sub-packages,
odp.projandodp.proj.testare completely separate packages - https://stackoverflow.com/questions/1967229/making-certain-methods-visible-only-to-particular-packages
Protected
- The access level of a protected modifier is:
- within the package
- outside the package through child class
- If you do not make the child class, it cannot be accessed from outside the package.
Public
- The access level of a public modifier is everywhere. It can be accessed from within the class, outside the class, within the package and outside the package.
ref: https://www.javatpoint.com/access-modifiers
| Modifier | Class | Package | Subclass | World |
|---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
| no modifier | Y | Y | N | N |
private | Y | N | N | N |