 2 , translates to " ( generic ) name x receives a reference to a separate , dynamically allocated object of numeric ( int ) type of value 2 . " This is termed binding the name to the object . Since the name 's storage location doesn 't contain the indicated value , it is improper to call it a variable . Names may be subsequently rebound at any time to objects of greatly varying types , including strings , procedures , complex objects with data and methods , etc . Successive assignments of a common value to multiple names , e.g. , x 
