V objektově orientovaném programování je obal nad neobjektovým typem ( boxed type ) objektový datový typ určený k uložení hodnoty neobjektového typu. Například v Javě je třída Integernadmnožinou primitivního typu int.
V mnoha jazycích jsou obaly zahrnuty v syntaxi jazyka. Poté, pokud funkce vyžaduje Integernebo Object, automaticky „zabalí“ číslo do typu obálky. Například v kódu Java
void someFunc ( Object x ) {} someFunc ( 4 );ekvivalentní ke kódu
someFunc ( Integer . valueOf ( 4 ));To je to, co je automatické otáčení. Podobně funguje autoexpand v kódu
int x = 1 + celé číslo . hodnotaOf ( 2 );Zde je typ Integerrozšířen zpět na int.
Java i C# Objectse nerozbalují zpět na int: následující kód tedy povede k chybě
Objekt x = celé číslo . hodnotaOf ( 2 ); int y = x ; // chyba přetypováníTypy dat | |
---|---|
Neinterpretovatelné | |
Numerický | |
Text | |
Odkaz | |
Kompozitní | |
abstraktní | |
jiný | |
související témata |