[RESOLVIDO] Duvida na classe Math

Por que o método random() da classe Math é chamado usando o nome da classe e não uma referência a um objeto?

Porque o método random está declarado como static. O random pode ser chamado assim:

Random objetoRandom = new Random();

Portanto podemos supor que na classe Math esteja assim:

public class Math {
  private static final Random RANDOM = new Random(); // objeto instanciado
  public static double random() {
    return RANDOM.nextDouble();
  }
}

Dessa forma, não há necessidade de instanciar vários Random e o mesmo Random pode ser acessado em qualquer parte da aplicação.

Podemos também criar nosso próprio Math:

public class CustomMath {
  private static final Random RANDOM = new Random(); // objeto instanciado
  public static double random() {
    return RANDOM.nextDouble();
  }
}
2 curtidas

Muuuuito obrigada, diego