Non è questione di "vantaggio" o "svantaggio". Un metodo è di istanza (invocato su un oggetto di un certo tipo) quando il metodo deve, presumibilmente, poter operare sullo "stato" (variabili di istanza) di quello specifico oggetto.
Un metodo statico lo invochi riferito ad una classe ... non ad un oggetto. Perché si presume che non debba o non abbia senso che sia invocabile su un oggetto specifico.
Per: a) metodi di "utilità" (es. quelli in Math), b) metodi "factory" che forniscono oggetti (pre)creati, c) metodi che sono relativi a dati o stati "globali" della applicazione o del sistema (es. currentTimeMillis() e getenv() di System)


Rispondi quotando