Background: Encapsulating data basically means that data in one part of the program isn't visible to other parts of a program. Why is this important? Debugging large programs. For example, say you're writing a web browser, and your back button doesn't work. You can focus only on that part of the program without having to think about data being processed in other parts of the program when it comes to finding out what's wrong.
Snippet:
union Data {
int digit;
};
union Data myData;
int digit = 2;
myData.digit = 3;
Explanation: The above snippet shows how data can be hidden from other parts of a program using unions. Although there is a digit variable in Data, it's OK to declare another variable of the same name outside of Data because that data is hidden to the instance myData. Speaking of which, yes, you can have multiple instances of a union.

