Java:Datatyper

Fra CodeWiki

Gå til: navigasjon, søk

Java har to hovedgrupper med datatyper: primitive datatyper, og klasser.

Datatype bytes Rekkevidde (inklusiv)
Byte 8 -127 til 127
Short 16 -32,768 til 32,767
Int 32 -2,147,483,648 til 2,147,483,647
Long 64 -9,223,372,036,854,775,808 til 9,223,372,036,854,775,807
Float 32 2-149 til (2-2-23)·2127
Double 64 2-1074 til (2-2-52)·21023
Boolean Udefinert True/False
Char 8 0 til 65,535

Innhold

Primitive datatyper

Primitive datatyper er kun verdier, og ikke objekter. Dette er noe som henger igjen fra språk som C++. Noen objektorienterte programmeringsspråk har kvittet seg helt med primitive datatyper, f.eks. Ruby og Smalltalk. Følgende primitive datatyper er oftest brukt:

int
Et 32-bit heltall (tall uten desimaler). Verdier i mengden {-2,147,483,648 ... 2,147,483,647} (inklusiv). Denne datatypen rommer de fleste tall man har bruk for, men dersom man trenger større tall kan man bruke en long, som er 64 bit.
float 
Et 32-bit flyttall (tall med desimaler). Det finnes også 64-bit variant, double.
boolean 
En boolsk variabel. Denne datatypen har kun to mulige verdier: true og false.
char 
Et 16-bit Unicode-tegn. Brukt for å lagre en enkelt bokstav. Ofte dropper man denne til fordel for en String med lengde 1.

Standardverdier

De forskjellige datatypene har også standardverdier. Dersom du lager en ny int:
int foo;
settes verdien til 0 av kompilatoren. Det er vanlig å være eksplisitt når man oppretter variabler dersom det er meningen at den skal ha standardverdien, siden dette ofte gjør koden lettere å lese. Alle tall settes til 0 (0.0 for flyttall), char til '\0', og boolean til false.

Literals

NB: Mangler bedre norsk ord for literal.

Literals er en måte du kan skrive en verdi for en variabel i kildekoden. Når det gjelder tall, er noen skrivemåter veldig naturlig for oss:

int decVal = 26; // Tallet 26, slik vi pleier å skrive det.
int octVal = 032; // Tallet 26, i det oktale tallsystemet.
int hexVal = 0x1a; // Tallet 26, i det hexadesimale tallsystemet.
 
double d1 = 123.4;
double d2 = 1.234e2;  // Samme som over, men med vitenskaplig notasjon.

For bokstaver bruker vi enkle siteringstegn (single quotes):

char b = 'b';
char hjerte = '\u2764'; // Bruk av et Unicode code point.
char linjeskift = '\n'; // Escape-sekvens for å få newline-tegnet.

Literals for boolske variabler er som man skulle forvente:

boolean konfigurert = false;
konfigurert = true;

Klasser

Klasser definert av Java (og av deg selv) utgjør også datatyper. Dette er mer komplekse datatyper som du lager selv. Typiske klasser som er vanlig å bruke som parametere til metoder og returverdier er for mange å liste opp her, men String er en av dem.

Standardverdier

Standardverdien til en variabel som skal kunne holde et objekt av en gitt klasse er null. Denne verdien er spesiell, da den kan angis for alle typer (bortsett fra primitive datatyper), og ikke inneholder noen spesielle metoder. Den er ment å representere mangel på verdi. Med andre ord, dersom vi skriver:

String tekst;

... vil variabelen tekst inneholde verdien null.

Literals

Det er ikke mange literals å snakke om for klasser. Siden String er så mye brukt som den er, har den fått en enkel måte å instansieres på, gjennom en "string literal". Det skrives med doble siteringstegn (double quotes):

tekst = "Hei på deg!";

Utenom det er det bare null som kan brukes, ved siden av å benytte en constructor da.

Eksterne lenker

Les mer om primitive datatyper på Suns Nuts and Bolts tutorial.

Personlige verktøy
dataprogrammering
generelt