Some object-oriented programming language make an distinction betweeen objects an non-objects, often referred to as primitive types for reasons such as runtime efficiency and syntax or semantic issues. For example, Java has object types corresponding to each primitive types. Such are Integer
and Character
. In languages like C++ that make little or no distinction between objects and non-objects, the use of object type is of little interest.
Boxing is a way to wrap objectss with primitive types over object types so that those can be used like objects. Examples are Integer class for integer type in Java. Some languages require programmers to do boxing manually, while some support autoboxing/unboxing.