Inside a class method, the self identifier points to the VMT table of the class. No fields, properties or regular methods are available inside a class method. Accessing a regular property or method will result in a compiler error. The reverse is possible: a class method can be called from a regular method. ... Class methods cannot be used as read or write specifiers for a property.
Именно поэтому приходится работать не с полями класса, а с внешней (по отношению к классу) переменной...