There are four types of inner classes: member, static member, local, and anonymous . A member class is defined at the top level of the class. It may have the same access modifiers as variables (public, protected, package, static, final), and is accessed in much the same way as variables of that class.