The Java programming language allows you to define a class within another class. … Non-static nested classes (inner classes) have access to other members of the enclosing class , even if they are declared private. Static nested classes do not have access to other members of the enclosing class.