I java finnes det et sett med primitive datatyper, slik som boolean, char, int, osv. Disse datatypene er forhåndsdefinerte av språket, og har navn etter sitt eget reserverte keyword. De primitive datatypene deler ikke tilstand med noen av de andre. Mer om de primitive datatypene i java her, og for mer om bruken av datatyper generelt her.
Selv om noen datatyper regnes som primitive i java, kan disse datatypene fortsatt representeres ved en klasse. Det vil si at f.eks. char-datatypen kan "pakkes inn" i en Character-klasse:
Character char c_prim = 'c'; Character c_class = new Character('c'); System.out.println(c_prim == c_class); // true Her kan man se at java ikke skiller mellom variabler som er instansiert |
Integer Integer first = new Integer(5); Integer second = new Integer(5); System.out.println(first.equals(second)); // true I tillegg ser man her at der java vanligvis skiller mellom objekter som inneholder samme |
---|
Som eksemplifisert ovenfor er altså ikke disse klassene hovedsaklig ment for bruk i objektorientert sammenheng. Klassene inneholder derimot en rekke statiske metoder, som kan brukes for å hente informasjon om eller manipulere verdier av de primære datatypene.
Typiske eksempler:
Character | Integer | Double |
---|---|---|
Character.toLowerCase(char) | Integer.parseInt(String) | Double.isInfinite(double) |
Character.isWhitespace(char) | Integer.doubleValue(int) | Double.parseDouble(string) |
Character.isDigit(char) | Integer.toString(int) | Double.compareTo(double) |
Det er verdt å merke seg at Number-klassene (Integer,Double,Float,osv) har metoder knyttet til konvertering mellom hverandre som brukes på objekter.
Verdiklasser knyttet til generics