@@people_count variable belongs to the class itself, not to instances of the class. It's set once, to the value 0, when the class definition is first read by the interpreter (which happens only once).
The instance does not internally store its own, different version of
@@people_count - there's only one "copy" of that variable and it can't be changed by an instance unless it is done within an instance method.
An easy way to show this is to add a line like
puts "reading the Person class" directly under
@@people_count and seeing what happens. You will be able to see that this is only called when the interpreter initially reads the class, but not when new instances of
Person are created.
Hopefully that makes sense!