Java has different access levels for fields:
public
protected
default
private
Due to encapsulation concept we always trying to use private
modifier with getters and setters of needed access level. It has various advantages shown in this answer. Since getters and setters are so cool, when should we prefer public/protected/default Object field;
to private Object field;
with public/protected/default
getters and setters?
Clarification: I perfectly understand why and what are getters, setters and access modifiers. I just want comprehensive answer for a certain question above.