A tablespace is nothing but a collection of datafiles which are nothing but a collection of datablocks.

Looking at it from the logical point of view space for each one of your objects is organized in "extents" which are nothing but a collection of datablocks.

At the time you create a table/index -or a table/index grows- you are allocating extents at the tablespace level letting Oracle to decide the datafile where to allocate the space you need.