Che il metodo sia di classe o d'istanza in questo caso non cambia assolutamente nulla, sarebbe la stessa cose prendere in esempio il metodo d'istanza nextInt() della classe Random.Originariamente inviato da Scara95
Math.random() è un caso diverso, si tratta di un metodo di classe e non di istanza, inoltre molto probabilmente modifica uno stato che gli permette di generare numeri pseudocasuali...
E' ovvio che il metodo Math.random(), come tutti gli altri metodi che devono generare numeri pseudo-casuali (basati su funzioni che elaborano i dati generati precedentemente, e non del tipo "guardo l'ora e prendo i millisecondi") modifichi lo stato interno, ma ciò che viene modificato è lo stato dell'oggetto chiamato, non di quello chiamante come ha detto l'utente poco sopra, ovvero dell'oggetto che possiede quel metodo.
Fra l'altro, i metodi di classe potrebbero essere benissimo considerati (e implementati) come metodi d'istanza chiamati sempre sullo stesso oggetto.

Rispondi quotando