Comme tu l'as corrigé, ça ne change rien, l'une est variable locale, l'autre est variable de la classe, ça revient au même, sauf que la portée est pour toute la classe dans ton cas.
Et bien, la sortie est bonne !!!
Ca donne 1 à partir de la 2e instance qui est le rrésultat normal vu que la variable n'est pas réinitialisée !!!
Si tu relis le thread depuis le début, il y a une classe qui contient une classe comme donnée membre, et lors de l'appel de cette dernière, il veut qu'il y a qu'une fois un appel de fonction, d'où l'idée de la variable statique ...