¡Hola Pablo!
En el código que mencionas, cuando se crea la segunda clase de implementación OrdenadorPorNumeroCuenta, se está implementando la interfaz Comparator<Cuenta>. Esto significa que estás definiendo una forma personalizada de comparar objetos de tipo Cuenta.
El método compare que sobreescribes en la clase OrdenadorPorNumeroCuenta es el método que se utilizará para comparar dos objetos de tipo Cuenta y determinar su orden. Sin embargo, este método no se llama automáticamente cuando creas una instancia de OrdenadorPorNumeroCuenta.
En cambio, cuando deseas utilizar el comparador personalizado, debes pasarlo como argumento a un método o función que lo requiera. Por ejemplo, si tienes una lista de objetos Cuenta y deseas ordenarla utilizando el comparador OrdenadorPorNumeroCuenta, puedes hacerlo de la siguiente manera:
List<Cuenta> listaCuentas = new ArrayList<>();
// Agregar elementos a la lista...
Comparator<Cuenta> comparador = new OrdenadorPorNumeroCuenta();
Collections.sort(listaCuentas, comparador);
En este ejemplo, se utiliza el método sort de la clase Collections para ordenar la lista listaCuentas utilizando el comparador OrdenadorPorNumeroCuenta. Dentro de este método, se llamará automáticamente al método compare que has sobrescrito en la clase OrdenadorPorNumeroCuenta para comparar los elementos de la lista y ordenarlos correctamente.
Espero que esto aclare tu duda. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte con tus estudios!
Espero haber ayudado y buenos estudios!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)