Ho usato come parametro di synchronized Smiley.class
Sì, puoi usare un class "literal" Smiley.class oppure puoi prendere il Class dall'oggetto con this.getClass() (o più abbreviato solo getClass() siccome this è implicito).
Il Class ottenuto è lo stesso, il risultato non cambierebbe.