(→Tipos primitivos) |
|||
Line 5: | Line 5: | ||
No entanto, para permitir alguma uniformidade no tratamento dos tipos, a linguagem também define as classes correspondentes aos tipos primitivos e, a partir da versão 1.5, permite a auto-conversão de tipos primitivos para essas classes. As classes correspondentes aos tipos primitivos são designadas ''wrappers'' ("envoltórios") e o processo de conversão implÃcita é designado por ''auto-boxing'' ("auto-empacotamento"). | No entanto, para permitir alguma uniformidade no tratamento dos tipos, a linguagem também define as classes correspondentes aos tipos primitivos e, a partir da versão 1.5, permite a auto-conversão de tipos primitivos para essas classes. As classes correspondentes aos tipos primitivos são designadas ''wrappers'' ("envoltórios") e o processo de conversão implÃcita é designado por ''auto-boxing'' ("auto-empacotamento"). | ||
− | === Tipos primitivos === | + | === Tipos primitivos e ''wrappers'' === |
− | Os tipos primitivos são os que figuram na seguinte tabela. | + | Os tipos primitivos e as classes que lhes correspondem são os que figuram na seguinte tabela. |
{| style="border-style: solid; border-width: 2px; width: 90%;" cellspacing=3 | {| style="border-style: solid; border-width: 2px; width: 90%;" cellspacing=3 | ||
− | ! width="20%" | Tipo | + | ! bgcolor="#df8f2f" width="20%" | Tipo |
− | ! width="20%" | Dimensão (bits) | + | ! bgcolor="#df8f2f" width="20%" | Dimensão (bits) |
− | ! width="20%" | MÃnimo | + | ! bgcolor="#df8f2f" width="20%" | MÃnimo |
− | ! width="20%" | Máximo | + | ! bgcolor="#df8f2f" width="20%" | Máximo |
+ | ! bgcolor="#df8f2f" width="20%" | Wrapper | ||
|- | |- | ||
− | ! bgcolor="wheat" | boolean | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | boolean |
! bgcolor="wheat" | - | ! bgcolor="wheat" | - | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Boolean | ||
|- | |- | ||
− | ! bgcolor="wheat" | char | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | char |
! bgcolor="wheat" | 16 | ! bgcolor="wheat" | 16 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | Unicode 0 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Unicode 0 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | Unicode 2<sup>16</sup>-1 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Unicode 2<sup>16</sup>-1 | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Character | ||
|- | |- | ||
− | ! bgcolor="wheat" | byte | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | byte |
! bgcolor="wheat" | 8 | ! bgcolor="wheat" | 8 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | -128 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | -128 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | +127 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | +127 | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Byte | ||
|- | |- | ||
− | ! bgcolor="wheat" | short | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | short |
! bgcolor="wheat" | 16 | ! bgcolor="wheat" | 16 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>15</sup> | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>15</sup> | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>15</sup>-1 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>15</sup>-1 | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Short | ||
|- | |- | ||
− | ! bgcolor="wheat" | int | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | int |
! bgcolor="wheat" | 32 | ! bgcolor="wheat" | 32 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>31</sup> | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>31</sup> | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>31</sup>-1 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>31</sup>-1 | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Integer | ||
|- | |- | ||
− | ! bgcolor="wheat" | long | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | long |
! bgcolor="wheat" | 64 | ! bgcolor="wheat" | 64 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>63</sup> | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | -2<sup>63</sup> | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>63</sup>-1 | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | +2<sup>63</sup>-1 | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Long | ||
|- | |- | ||
− | ! bgcolor="wheat" | float | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | float |
! bgcolor="wheat" | 32 | ! bgcolor="wheat" | 32 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] [http://www.l2f.inesc-id.pt/~david/ist/docencia/IEEE%20standard%20for%20binary%20floating-point%20arithmetic%20(IEEE%20754).pdf] | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] [http://www.l2f.inesc-id.pt/~david/ist/docencia/IEEE%20standard%20for%20binary%20floating-point%20arithmetic%20(IEEE%20754).pdf] | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Float | ||
|- | |- | ||
− | ! bgcolor="wheat" | double | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | double |
! bgcolor="wheat" | 64 | ! bgcolor="wheat" | 64 | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | [[wikipedia:IEEE floating-point standard|IEEE 754]] | ||
+ | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Double | ||
|- | |- | ||
− | ! bgcolor="wheat" | void | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | void |
! bgcolor="wheat" | - | ! bgcolor="wheat" | - | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ||
! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | - | ||
− | + | ! style="padding-left: 10px;" bgcolor="wheat" align="left" | Void | |
− | |||
− | === | ||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|} | |} | ||
== Ver Também == | == Ver Também == | ||
− | * [[Classes pré-definidas em Java|Classes pré-definidas]] | + | * [[Classes pré-definidas em Java|Classes pré-definidas]] |
[[category:OOP]] | [[category:OOP]] | ||
[[category:Java]] | [[category:Java]] |
Embora fosse concebÃvel definir classes para todos os tipos de dados a utilizar por um programa em Java, inclusivamente para os tipos básicos, tal conduziria a ineficiência durante a execução.
Para obviar ao problema, no Java utiliza-se um sistema de tipos hÃbrido: são definidos tipos básicos para cobrir entidades atómicas. Estes tipos semelhantes aos do C e do C++ (embora com algumas restrições, como, por exemplo, as dimensões) permitem tratar eficientemenmte entidades como inteiros ou caracteres.
No entanto, para permitir alguma uniformidade no tratamento dos tipos, a linguagem também define as classes correspondentes aos tipos primitivos e, a partir da versão 1.5, permite a auto-conversão de tipos primitivos para essas classes. As classes correspondentes aos tipos primitivos são designadas wrappers ("envoltórios") e o processo de conversão implÃcita é designado por auto-boxing ("auto-empacotamento").
Os tipos primitivos e as classes que lhes correspondem são os que figuram na seguinte tabela.
Tipo | Dimensão (bits) | MÃnimo | Máximo | Wrapper |
---|---|---|---|---|
boolean | - | - | - | Boolean |
char | 16 | Unicode 0 | Unicode 216-1 | Character |
byte | 8 | -128 | +127 | Byte |
short | 16 | -215 | +215-1 | Short |
int | 32 | -231 | +231-1 | Integer |
long | 64 | -263 | +263-1 | Long |
float | 32 | IEEE 754 [1] | IEEE 754 | Float |
double | 64 | IEEE 754 | IEEE 754 | Double |
void | - | - | - | Void |