Question: what is the difference between a static nested class and a non-static nested class?
Answer: Nested classes that are declared static are called static nested classes. Non-static nested classes are called inner classes. A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.