Wrapper-klassen

Gegevenstypen en uitzonderingen in Java

Jim White

Java Developer

Java: 8 primitieven

De 8 Java-primitieven zijn de basistypen waaruit alle data is opgebouwd.

Gegevenstypen en uitzonderingen in Java

Wrapper-klassen

  • Elk primitief type heeft een equivalente wrapper-klasse
primitief Wrapper-klasse
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Wrapper-klassen laten je primitieven als object gebruiken. Wrapper-klassen zijn subklassen van Object.

Gegevenstypen en uitzonderingen in Java

Primitieven wrappen

  • Instanties van een wrapper-klasse bevatten één primitief
    • Voorbeeld: Integer bevat één int-waarde

Wrapper-objecten bevatten een primitief als hun waarde

Gegevenstypen en uitzonderingen in Java

Wrapper-details

  • Wrapper-klassen hebben extra velden en methoden
    • Velden (zoals maxwaarde) over het type
    • Methodes om met het ingepakte primitieve type te werken
  • Wrapper-klassen zitten in de basis-taalbibliotheek
    • Gebruik ze zonder import (meer over imports later)
Gegevenstypen en uitzonderingen in Java

Wrapper-objecten maken

  • Ken een primitief toe aan een variabele van het wrapper-type
    • Syntaxis: Wrapper-type variabele = primitieve-waarde;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Wrapper-objecten kunnen ook geen waarde hebben (null)
Integer age = null;
Gegevenstypen en uitzonderingen in Java

Wrapper-objecten gebruiken

Integer age = 12;
  • Printen
    System.out.println(age);    // Toont 12
    
  • Hun primitieve waarde ophalen
    int x = age.intValue();     // x krijgt 12
    
  • Andere bewerkingen uitvoeren
    double z = age.doubleValue();  // z is 12.0
    String y = age.toString();  // y krijgt "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller is -1 want 12 < 16
    
Gegevenstypen en uitzonderingen in Java

Statische wrapper-methoden

  • Wrapper-klassen hebben statische methoden
  • Gebruikt voor operaties op de bijbehorende primitieven
    int x = Integer.sum(8,12);  // x is 20
    int y = Integer.remainderUnsigned(102, 10);  // y is 2
    
  • Gebruikt om te converteren tussen String en primitief
    int z = Integer.parseInt("123");   // z is 123;
    boolean ans = Boolean.parseBoolean("false");  // ans is false
    
1 Zie https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html voor meer over de Integer-wrapper
Gegevenstypen en uitzonderingen in Java

Statische wrapper-velden

Voorbeelden van statische velden in wrapper-klassen

System.out.println(Integer.MAX_VALUE); // Maximale waarde van een int
System.out.println(Integer.MIN_VALUE); // Minimale waarde van een int
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Komt overeen met primitieve true
System.out.println(Boolean.FALSE); // Komt overeen met primitieve false
true
false
Gegevenstypen en uitzonderingen in Java

Statische wrapper-velden

Voorbeelden van statische velden in wrapper-klassen

System.out.println(Character.SPACE_SEPARATOR);  // Unicode voor de gewone spatie zoals ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode voor regeleinde zoals '\n'
12
13
Gegevenstypen en uitzonderingen in Java

Interessante wrapper-methoden

Wrapper-methode Retourneert
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) Unicode int-waarde van het teken
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() de Double-waarde, naar beneden afgerond, als Long
Gegevenstypen en uitzonderingen in Java

Waarom wrappers?

  • Primitieven hebben geen methoden (alleen operaties)
    • Wrapper-klassen hebben handige methoden
      int score = Integer.parseInt("8");
      
  • Wrappers laten je primitieven als objecten gebruiken; bv. in een collectie
    • Je leert over collecties in hoofdstuk 2.
Gegevenstypen en uitzonderingen in Java

Wrappers kunnen null zijn

  • Wrappers laten instantie- of statische variabelen van het type null zijn
    • Primitieve instantie- of statische variabelen hebben een standaardwaarde als ze niet zijn geïnitialiseerd
int herAge; // age is standaard 0
Integer hisAge = null;
if (hisAge != null) {
  // doe iets wanneer hisAge niet is gezet
}
Gegevenstypen en uitzonderingen in Java

Laten we oefenen!

Gegevenstypen en uitzonderingen in Java

Preparing Video For Download...