En informática, un tipo de objeto (objeto alias envolver) es un tipo de datos que se utiliza en la programación orientada a objetos para envolver un tipo no-objeto a hacer que parezca un objeto dinámico.
Algunas de programación lenguajes orientados a objetos hacer una distinción entre tipos de referencia y de valor, a menudo referido como objetos y no objetos en plataformas donde no existen tipos de valores complejos , por razones tales como tiempo de ejecución Eficiencia y sintaxis o cuestiones semánticas. Por ejemplo, Java dispone de clases primitivas envoltura correspondientes a cada tipo primitivo: Entero y int, el carácter y Char, flotador y el flotador, etc. Lenguajes como C++ tienen poca o ninguna noción de tipo de referencia; por lo tanto, el uso del tipo de objeto es de poco interés.
boxeo es el proceso de colocar un tipo primitivo dentro de un objeto de modo que la primitiva se puede utilizar como un objeto referencia. Por ejemplo, las listas pueden tener ciertos métodos que las matrices pueden no tener, pero la lista también podría requerir que todos sus miembros sean objetos dinámicos . En este caso, la funcionalidad agregada de la lista podría no estar disponible para un simple conjunto de números . Para un ejemplo más concreto, en Java, LinkedList puede cambiar su tamaño , pero una matriz debe tener un tamaño fijo de . Uno podría desear tener un LinkedList de entradas, pero la clase LinkedList solo enumera las referencias a los objetos dinámicos - no puede enumerar los tipos primitivos , que son tipos de valores.
Para evitar esto, enteros puede en caja en enteros, que son dinámicos objetos, y después se añadió a una LinkedList de números enteros. (Usando genéricos tipos parametrizados introducidas en J2SE 5.0, este tipo se representa como LinkedList.) Por otro mano, C# no tiene envoltura primitiva clases, pero permite el boxeo de cualquier tipo valor, devolviendo un genérico Referencia a objeto .
El objeto en la caja es siempre una copia de el objeto de valor, y suele ser inmutable. Al desempaquetar el objeto también se devuelve una copia del valor almacenado. de forma reiterada, el boxeo y unboxing de objetos puede tener un grave impacto rendimiento, ya que dinámicamente asigna nuevos objetos y luego los hace elegibles para basura colección.
"El problema con los tipos primitivos (al menos hasta Java 5)" ... y versiones posteriores también. Aunque ahora existe el auto-boxing, todavía no existe una clase base común para los tipos primitivos. –