Video: Lezione 07: Classi Wrapper e metodi 2025
La differenza tra tipi primitivi e tipi di riferimento è una delle funzionalità più controverse di Java e gli sviluppatori si lamentano spesso delle differenze tra valori primitivi e valori di riferimento.
-
Ogni tipo primitivo viene cotto nella lingua.
Java ha otto tipi primitivi.
-
Ogni tipo di riferimento è una classe o un'interfaccia.
È possibile definire il proprio tipo di riferimento. Quindi il numero di tipi di riferimento in Java è potenzialmente infinito.
Ecco uno dei getchas di tipo primitivo-di riferimento-tipo: "Non è possibile memorizzare un valore primitivo in ArrayList. È possibile scrivere
// QUESTO È OKAY: ArrayList arrayList = new ArrayList ();
perché String è un tipo di riferimento. Ma non puoi scrivere
// NON FARE QUESTO: ArrayList arrayList = new ArrayList ();
perché int è un tipo primitivo. Fortunatamente, ciascuno dei tipi primitivi di Java ha un tipo wrapper , che è un tipo di riferimento il cui scopo è quello di contenere il valore di un altro tipo. Ad esempio, un oggetto del tipo Integer di Java contiene un singolo valore int. Un oggetto del tipo Double di Java contiene un singolo valore doppio. Un oggetto del tipo di carattere Java contiene un singolo valore char. Non è possibile creare un ArrayList di valori int, ma è possibile creare un ArrayList di valori Integer.
// QUESTO È OKAY: ArrayList arrayList = new ArrayList ();
Il nome di ogni tipo primitivo inizia con una lettera minuscola. Il nome di ogni tipo di wrapper inizia con una lettera maiuscola.
Oltre a contenere valori primitivi, le classi wrapper forniscono metodi utili per lavorare con valori primitivi. Ad esempio, la classe wrapper Integer contiene parseInt e altri metodi utili per lavorare con i valori int:
String string = "17"; int numero = intero. parseInt (stringa);
Sul lato negativo, lavorare con i tipi di wrapper può essere goffo. Ad esempio, non è possibile utilizzare operatori aritmetici con tipi di wrapper numerici di Java. Ecco come creare due valori Integer e aggiungerli insieme:
Integer myInteger = new Integer (3); Integer myOtherInteger = new Integer (15); Intero sum = myInteger. intValue () + myOtherInteger. intValue ();
