Vídeo: Curso de Java 57: Wrappers: classes de tipos primitivos 2024
A diferença entre tipos primitivos e tipos de referência é uma das características mais controversas de Java, e os desenvolvedores frequentemente se queixam sobre as diferenças entre valores primitivos e valores de referência.
-
Cada tipo primitivo é cozido no idioma.
Java tem oito tipos primitivos.
-
Cada tipo de referência é uma classe ou uma interface.
Você pode definir seu próprio tipo de referência. Portanto, o número de tipos de referência em Java é potencialmente infinito.
Aqui está uma das "gotchas" de tipo primitivo versus referência: "Você não pode armazenar um valor primitivo em um ArrayList. Você pode escrever
// ESTA É APROVADA: ArrayList arrayList = new ArrayList ();
porque String é um tipo de referência. Mas você não pode escrever
// NÃO FAÇA ESTE: ArrayList arrayList = new ArrayList ();
porque int é um tipo primitivo. Felizmente, cada um dos tipos primitivos de Java tem um tipo wrapper , que é um tipo de referência cujo objetivo é conter o valor de outro tipo. Por exemplo, um objeto do tipo Integer do Java contém um único valor int. Um objeto do tipo Double de Java contém um único valor duplo. Um objeto do tipo de caractere de Java contém um único valor de caractere. Você não pode criar um ArrayList de valores int, mas você pode criar um ArrayList de valores Inteiros.
// ESTA É OK: ArrayList arrayList = new ArrayList ();
Todo o nome do tipo primitivo começa com uma letra minúscula. O nome do tipo de wrapper começa com uma letra maiúscula.
Além de conter valores primitivos, as classes de wrapper fornecem métodos úteis para trabalhar com valores primitivos. Por exemplo, a classe Integer wrapper contém parseInt e outros métodos úteis para trabalhar com valores int:
String string = "17"; int number = Integer. parseInt (string);
Com a desvantagem, trabalhar com tipos de invólucro pode ser desajeitado. Por exemplo, você não pode usar operadores aritméticos com os tipos de wrapper numéricos de Java. Aqui está a maneira de criar dois valores inteiros e adicioná-los juntos:
Inteiro myInteger = novo Inteiro (3); Inteiro myOtherInteger = novo Inteiro (15); Sumário inteiro = myInteger. intValue () + myOtherInteger. intValue ();