Feature-oriented package structures and the default access modifier
In Java we have 4 access modifiers that can be applied to methods and fields of a class. In descending order of visibility, they are:
public String publicModifier = "Anyone can access me"; protected String protectedModifier = "Only accessible to classes in the same package as me, and my subclasses"; String defaultModifier = "Only accessible to classes in the same package as me"; private String privateModifier = "Only accessible within this class"; This article is a love letter to the third in this list of modifiers, the one-who-shall-not-be-named.