The link between objects and primitive types is "boxing", a procedure that encapsulates a value type in an object when it is used where a object is required (such as passing a primitive type by reference). The whole boxing procedure is handled by the runtime and without needing the programmer to care about it.
You can find out much more about it by looking at:
http://forums.xisto.com/no_longer_exists/