Description
As the name would suggest a reference class sets itself apart in that it's attributes are references to other objects, either of classes defined by the developer or built-in classes such as STRING or REAL. As such, an object of a the reference type does not contain any actual values apart from addresses
That's not actually true. Reference vs expanded types are not about objects, they're about variables(fields/members/whatever) of reference or expanded types, these differ fundamentally, the objects, however, don't.
Reference types are free to contain expanded types, so an object of a reference type they will contain actual values if the developer specifies as such. Expanded types are free to contain reference types.
The difference is that variables will holy the value either directly, or they will simply hold a reference to a value. Traditionally, the two types are called reference and value types.