Se vuoi che una variabile pubblica non venga azzerata, anche se appartenente ad una classe, devi anteporre la parolina STATIC.
In questo caso, la variabile viene impostata alla prima chiamata, e rimane valida fino al termine del programma.
Una ipotesi è quella di una generazione di un ID progressivo per la stessa classe; ogni volta che crei una nuova classe dello stesso tipo, puoi incrementare l'ID, che rimane incrementato fino alla chiusura dell'applicazione. Se crei un'altra classe dello stesso tipo, ti trovi il numero incrementato, lo incrementi nuovamente, e via così.
Spero di essere stato chiaro, io non mi sono capito... :-)