The value of a variable or property has a datatype, and this datatype is either a scalar type or an object type. Scalar types are strings, numbers (integers, singles, doubles), colors, and booleans, all taken up formally in Chapter 5. Object types are classes, which is what this chapter is about. When a variable or property has an object datatype, the name of the datatype is the name of a class, and the variable or property can be used as a reference to an instance of that class.
So far, this chapter has explained how to generate an instance, and how to get a reference to that instance. Now it’s time to talk about how to work with references to instances.
References to instances are tricky. Paradoxically, this is for the same reason they are so easy. REALbasic tries to shield you from the truth, which is that references to instances are pointers—the value of a reference to an instance is not the data (the instance), but an address (a numeric value stating where in memory the actual instance lives). The word “pointer” doesn’t appear in this connection anywhere in the REALbasic documentation. The REALbasic language doesn’t make you explicitly dereference a pointer in order to gain access to the properties of an instance; instead, such dereferencing is handled for you implicitly. In short, REALbasic tries to create the illusion that objects are just like scalars.
The purpose of this section is to shatter that illusion and trample its fragments ...