Working with the reference class
There is also a class system that has reference semantics. It is more like the class system in other object-oriented programming languages.
First, to define a reference class (RC), we supply a class definition to setRefClass(). Unlike the S4 class system where we use new() to create an instance, setRefClass() returns an instance generator. For example, we define a class named Vehicle, which has two fields: a numeric position and a numeric distance. We store the instance generator to a variable named Vehicle:
Vehicle <- setRefClass("Vehicle",  
  fields = list(position = "numeric", distance = "numeric")) 
To create an instance, we use Vehicle$new to create new instances of the Vehicle class:
car <- Vehicle$new(position = 0, distance = 0)
Unlike S4, the fields of RC are not slots, so we can use $ to access them:
car$position ## [1] 0
Each instance we create with Vehicle$new is an object of reference...