Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

 

Code Block
languagejava
titleCharacter
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 initialisert
gjennom den primitive datatypen, eller dens tilhørende klasse siden disse
uttrykker eksakt samme mening. Men ...

 

Code Block
languagejava
titleInteger
Integer first = new Integer(5);
Integer second = new Integer(5);
 
System.out.println(first == second); // false
 

... de er ikke samme objekter!

Vi kan altså bruke verdiklasser til å skille mellom objekter, som egentlig uttrykker samme mening. Dette gjelder også for egendefinerte klasser og klasser som finnes i java-biblioteker.

I tillegg har de forskjellige verdiklassene ofte et sett med statiske metoder som ofte brukes til å tolke eller modifisere data. String- og Characterklassen har mange slike metoder.
Typiske eksempler:

CharacterIntegerDouble
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 også verdt å merke seg at Number-klassene (Integer,Double,Float,osv) har metoder knyttet til konvertering mellom hverandre som brukes på objekter, og ikke i statisk sammenheng. 

Verdiklasser knyttet til generics

...