When you are at this moment
System.out.println(tooth);
the class property is used ( static final long tooth = 1L; ), then a new tooth declared that shades the class property, which means that it is used instead.
Inside the tooth method, the tooth variabile parameter is passed as a value, it will not be changed, you can see this by doing main , which gives:
1 3 2
source share