You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

En datatype er en klassifisering som kan identifisere data, i den forstand at datatypen bestemmer hvilke verdier dataene kan ha, hvilke operasjoner som kan gjøres med verdier av denne datatypen og tildels meningen med dataene.

Vi kan ofte dele datatypene inn i noen overordnede grupper:

Talldata:

Tall representeres ofte som integer eller double.

Integer

Dersom data er av typen integer, begrenser dette verdiene dataene kan ha til heltall.
Int-tallene ligger etter hverandre, som på en tallinje i begge retninger.
Av praktisk grunner er heltallene avgrenset til en minimum-/maksimum-verdi, som i java ser slik ut: MIN_VALUE ...-2,-1,0,1,2 ... Integer.MAX_VALUE

Hva kan vi gjøre med integer?

- Beregne nye tall: 1 + 2 – 3 * 4 / 5 % 6
- Sammenligne med andre tall: ==, !=, <, <=, >=, > 
- Operere på dem som binære tall med: &, | og ~ 
 

Integer i java
int heltall;

heltall = 1337; // Lovlig verdi for integer-variabelen
heltall = 10.3; // Ulovlig
heltall = 5/2;  // Lovlig (heltallsdivisjon)
heltall = 5.0/2 // Ulovlig 

heltall = 2;
heltall < 3.2 // true
 

 

Double

Dersom data er av typen double, kan dataene ha verdier som desimaltall. Faktisk vil selv heltallsverdier "omgjøres" til desimaltall.  
Med double kan man beregne nye tall, og sammenligne de med andre tall.

Double i java
double desimaltall;

desimaltall = 13.37; // Lovlig verdi for double-variabelen
desimaltall =  10;  // Lovlig, tolkes som 10.0
 
double annetDesimaltall = desimaltall/2.3; // Lovlig
 
desimaltall == 10 // true, siden de er samme faktiske verdi
desimaltall != 3 // true


Strengdata:

Når vi skal lagre tekst eller tegn brukes datatypene String eller char.


Char (Character)

Dersom vi har data bestående av en bokstav, et siffer eller et tegn kan dataene være av typen char
Teknisk sett ligger alle char-verdier etter hverandre på en tall linje, slik som integers. Alle char kan derav representeres som en tallverdi.

Hva kan/er meningsfylt å gjøre med en char

- Klassifisere data som som bokstav, stor/liten bokstav, siffer
- Gjøre om til stor/liten bokstav
- Konvertering mellom siffer og tall, f.eks. fra ‘1’ til 1
- Sammenligne med andre char-data

Char i java
char tegn;

tegn = 'A'; // I java defineres en char med enkle apostrofer. 
tegn = Character.toLowerCase(tegn); // tegn settes lik 'a' ved hjelp av en forhåndsdefinert metode som finnes i java
 
 
tegn = '#'; // Lovlig char-verdi
tegn = 't5'; // Ulovlig char-verdi, kan ikke bestå av flere tegn. Se String i stedet
tegn = '\'' // Setter tegn lik '
 
tegn = '2'; // Lovlig char-verdi
tegn == 2; // false, da int og char ikke er like, selv om verdien ser lik ut.


//Konvertering mellom char og int krever litt triksing:


// 1) Hvis man forsøke caste en char til int, vil dette gi svært rare resultater:

int heltall = (int) tegn;  // heltall settes lik 50?? 

// Dette skyldes, som nevnt ovenfor, at alle char-verdier ligger på en tall-linje. Vi vet nå at '2' er representert på plass 50 langs denne tall-linjen.

// 2) I java må vi konvertere char-verdien til en Sting, og deretter "parse" String-verdien til et integer. Det kan gjøres slik
 
String s = Character.toString(tegn); // Bruker en ny forhåndsdefinert metode i java
int heltall = Integer.parseInt(s); // heltall settes nå lik integer-verdien 2.
 


String


Dersom vi har data bestående av tekst/flere tegn,siffer,bokstaver vil dataene være av typen String
En String kan sees på som en tabell med char-verdier. Dersom vi vil forandre på teksten tabellen lager, modifiserer vi enten hele tabellen, eller enkelte char-verdier i tabellen

Hva kan/er meningsfylt å gjøre med en String
- Hente deler av teksten
- Forandre hele, eller deler av teksten (store/små bokstaver) 
- Konvertering mellom siffer og tall, f.eks. fra "1" til 1
- Sammenligne teksten med andre tekster

 

String i java
String tekst;
String tekst2; 
 
tekst = "hEi"; // I java defineres en String-verdi med doble apostrofer
tekst2 = "HeI";

tekst == tekst2; // false, det skilles mellom store og små bokstaver.
 
 
tekst = String.toLowerCase(tekst);

// Dersom vi vil gjøre "H"-en i tekst2 liten kan det gjøres på veldig mange måter (!) Her er en 

//1)

tekst2 =  // Hele tekst2 gjøres liten, og tekst == tekst2 vil fortsatt være lik false

//2) Vi må benytte oss av at en String kan sees på som en tabell med char-verdier.

char c = tekst2.charAt(0); // c settes lik 'H'
c = Character.toLowerCase(c); // c settes lik 'h';
tekst2

 


 



Logiske data:


Tabelldata

DENNE SIDEN ER UNDER UTVIKLING

  • No labels