Just as with the type checking, the privacy of members are only enforced within the compiler.
A private property is implemented as a regular property, and code outside the class is not allowed to access it.
To make something truly private inside the class, it can’t be a member of the class, it would be a local variable created inside a function scope inside the code that creates the object. That would mean that you can’t access it like a member of the class, i.e. using the this
keyword.