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