Video: Java 1: Wrapperklassen 2024
Skillnaden mellan primitiva typer och referenttyper är en av Java: s mest kontroversiella funktioner, och utvecklare klagar ofta över skillnaderna mellan primitiva värden och referensvärden.
-
Varje primitiv typ bakas in i språket.
Java har åtta primitiva typer.
-
Varje referenstyp är en klass eller ett gränssnitt.
Du kan definiera din egen referenstyp. Så antalet referenstyper i Java är potentiellt oändligt.
Här är en av de primitive-versus-reference-typen "gotchas:" Du kan inte lagra ett primitivt värde i en ArrayList. Du kan skriva
// DETTA ÄR OK: ArrayList arrayList = new ArrayList ();
eftersom String är en referenstyp. Men du kan inte skriva
// GÖR INTE DETTA: ArrayList arrayList = new ArrayList ();
eftersom int är en primitiv typ. Lyckligtvis har var och en av Java's primitiva typer en wrapper -typ, vilket är en referenstyp vars syfte är att innehålla en annan typs värde. Till exempel innehåller ett objekt av Java's Integer-typ ett enda int-värde. Ett objekt av Java: s dubbeltyp innehåller ett enda dubbelvärde. Ett objekt av Java: s teckentyp innehåller ett enda karaktärsvärde. Du kan inte skapa en ArrayList of int-värden, men du kan skapa en ArrayList of Integer-värden.
// DETTA ÄR OK: ArrayList arrayList = new ArrayList ();
Varje primitiv typs namn börjar med en liten bokstav. Varje omslagstyps namn börjar med en stor bokstav.
Förutom att innehålla primitiva värden ger wrappklasser användbara metoder för att arbeta med primitiva värden. Till exempel innehåller Integer wrapper klassen parseInt och andra användbara metoder för att arbeta med int värden:
Strängsträng = "17"; int nummer = heltal. parseInt (sträng);
På nackdelen kan arbetet med omslagstyper vara klumpigt. Du kan till exempel inte använda aritmetiska operatörer med Java: s numeriska omslagstyp. Här är sättet att skapa två heltalvärden och lägga till dem:
Integer myInteger = nytt heltal (3); Heltal myOtherInteger = nytt heltal (15); Heltal summa = myInteger. intValue () + myOtherInteger. intValue ();