W informatyce typ obiektu (object aka owijania) jest typem danych który jest wykorzystywany w programowaniu obiektowym zawinąć typu non-object aby wyglądać jak obiekt dynamiczny.
Niektóre obiektowych języków programowania dokonać rozróżnienia między odniesienia i wartości typów, często dalej obiektów i innych obiektów na platformach gdzie nie istnieją złożone typy wartości , z powodów takich jak starcie wydajność i składnia lub problemy semantyczne. Na przykład, Java ma prymitywne klasy otoki odpowiadające każdego rodzaju prymitywnego: całkowitą i int, charakter i char pływaka i pływak itp językach takich jak C++ mają niewielkie lub żadne pojęcie typu odniesienia; w związku z tym użycie obiektu typu jest mało interesujące.
Boks jest proces umieszczania pierwotnych w obiekcie tak że pierwotna może być używany jako przedmiot odniesienia. Na przykład listy mogą mieć pewne metody, które mogą być niedostępne dla tablic , ale lista może również wymagać, aby wszystkie jej elementy były obiektami dynamicznymi. W takim przypadku dodana funkcja listy może być niedostępna dla prostej tablicy . Aby uzyskać bardziej konkretny przykład, w języku Java, LinkedList może zmienić jego rozmiar , ale tablica musi mieć ustalony rozmiar . Ktoś mógłby chcieć mieć LinkedList typu int, ale klasa LinkedList wyświetla listę odwołań tylko do obiektów dynamicznych - nie może zawierać list pierwotnych typów , które są typami wartości.
W tym celu ominięcia typu int mogą być zapakowane do liczby całkowite, które mają charakter dynamiczny przedmioty, a następnie dodaje się do LinkedList liczb całkowitych. (Korzystanie z generycznych parametryzowane typy wprowadzonych w J2SE 5.0, ten typ jest reprezentowany jako LinkedList.) Z drugiej strony, C# nie ma prymitywne opakowanie klas, ale pozwala boks dowolnego typu wartości, wracając obiektu ogólnego odniesienia.
Obiekt w pudełku jest zawsze kopią obiektu o wartości i jest zwykle niezmienny w postaci . Po rozpakowaniu obiektu również zwraca kopię zapisanej wartości. Należy pamiętać, że wielokrotne boksowanie i rozpakowywanie obiektów może mieć poważny wpływ na wydajność, ponieważ dynamicznie przydziela nowe obiekty i , a następnie kwalifikuje je do kolekcji Garbage .
"Problem z typami pierwotnymi (przynajmniej do wersji Java 5)" ... i nowsze wersje również. Chociaż istnieje teraz auto-boxing, wciąż nie ma wspólnej klasy bazowej dla typów pierwotnych. –