" Además de los métodos estáticos, existen clases estáticas. Las discutiremos con más detalle más adelante. Por ahora, permítanme mostrarles un ejemplo:"

Ejemplo:
public class StaticClassExample
{
    private static int catCount = 0;

    public static void main(String[] args) throws Exception
    {
        Cat bella = new Cat("Bella");
        Cat tiger = new Cat("Tiger");

        System.out.println("Cat count " + catCount);
    }

     public static class Cat
    {
        private String name;

        public Cat(String name)
         {
            this.name = name;
            StaticClassExample.catCount++;
         }
     }

}

" Puedes crear tantos objetos Cat como quieras. Pero este no es el caso con una variable estática. Solo existe una copia de una variable estática".

"El propósito principal de usar el modificador estático en la declaración de clase es controlar la relación entre las clases Cat y StaticClassExample . La idea es más o menos esta: la clase Cat no está vinculada a objetos StaticClassExample y no puede acceder a la instancia (no- static) variables de la clase StaticClassExample".

"¿Entonces puedo crear clases dentro de clases?"

"Sí. Java permite eso, pero no le des mucha importancia ahora. Será más claro cuando te explique algunas cosas más en el futuro".

"Eso espero, Rishi".