Any class instance can be anonymous; an object reference without a name. This is
useful in GUI code, for example, where many listener objects are often needed.
Below, "new JButtonListener()" creates an anonymous class that is passed directly
to the button. (It gets a name in the JButton constructor.) I/O operations use a lot
of anonymous classes too.
Sebastian explained static nested classes (the non-static kind are called inner classes).
But if you are asking more generally about static class members (attributes, methods,
static nested classes), they provide singleton behavior for your application.
Jim...

...