I know this is an old thread, but other people might have the same question. So, the answer to your questions is this:
When you use a type keyword in this way, you are creating a new variable. In your first screenshot, you are creating an additional ‘int’ variable inside the constructor that only exists inside the constructor. It just happens to have the same name as another already-defined variable. As soon as you leave the constructor, your variable with the 666 value is gone.
If you remove the ‘int’ keyword, you are no longer making a new variable. You would be accessing an existing variable.