Classi wrapper

Tipi di dati ed eccezioni in Java

Jim White

Java Developer

Primitivi di Java (8)

Gli 8 primitivi Java sono i tipi di base da cui si costruiscono tutti i dati.

Tipi di dati ed eccezioni in Java

Classi wrapper

  • Ogni tipo primitivo ha una classe wrapper equivalente
primitivo Classe wrapper
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Le classi wrapper permettono di trattare i primitivi come oggetti. Le classi wrapper sono sottoclassi di Object.

Tipi di dati ed eccezioni in Java

Wrappare i primitivi

  • Le istanze di una classe wrapper contengono un singolo primitivo
    • Esempio: Integer contiene un singolo valore primitivo int

Gli oggetti wrapper contengono un primitivo come valore

Tipi di dati ed eccezioni in Java

Dettagli sui wrapper

  • Le classi wrapper hanno campi e metodi aggiuntivi
    • Campi (come il valore max) sul tipo
    • Metodi per lavorare con il tipo primitivo incapsulato
  • Le classi wrapper sono nella libreria base
    • Usale senza import (più avanti sugli import)
Tipi di dati ed eccezioni in Java

Creare oggetti wrapper

  • Assegna un primitivo a una variabile del tipo wrapper
    • Sintassi: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Gli oggetti wrapper possono anche non avere valore (null)
Integer age = null;
Tipi di dati ed eccezioni in Java

Usare gli oggetti wrapper

Integer age = 12;
  • Stampali
    System.out.println(age);    // Mostra 12
    
  • Ottieni il valore primitivo
    int x = age.intValue();     // x vale 12
    
  • Esegui altre operazioni
    double z = age.doubleValue();  // z è 12.0
    String y = age.toString();  // y diventa "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller è -1 poiché 12 < 16
    
Tipi di dati ed eccezioni in Java

Metodi statici dei wrapper

  • Le classi wrapper hanno metodi statici
  • Usati per operare sui primitivi associati
    int x = Integer.sum(8,12);  // x è 20
    int y = Integer.remainderUnsigned(102, 10);  // y è 2
    
  • Usati per convertire tra String e primitivo
    int z = Integer.parseInt("123");   // z è 123
    boolean ans = Boolean.parseBoolean("false");  // ans è false
    
1 Vedi https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html per saperne di più sul wrapper Integer
Tipi di dati ed eccezioni in Java

Campi statici dei wrapper

Esempi di campi statici nelle classi wrapper

System.out.println(Integer.MAX_VALUE); // Valore massimo di un int
System.out.println(Integer.MIN_VALUE); // Valore minimo di un int
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Corrisponde al valore primitivo true
System.out.println(Boolean.FALSE); // Corrisponde al valore primitivo false
true
false
Tipi di dati ed eccezioni in Java

Campi statici dei wrapper

Esempi di campi statici nelle classi wrapper

System.out.println(Character.SPACE_SEPARATOR);  // Unicode per lo spazio normale come ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode per il ritorno a capo come '\n'
12
13
Tipi di dati ed eccezioni in Java

Metodi wrapper interessanti

Metodo wrapper Restituisce
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) valore int Unicode del char
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() il valore Double, arrotondato per difetto, come Long
Tipi di dati ed eccezioni in Java

Perché i wrapper?

  • I primitivi non hanno metodi (solo operatori)
    • Le classi wrapper offrono metodi utili
      int score = Integer.parseInt("8");
      
  • I wrapper permettono di usare i primitivi come oggetti; ad esempio nelle collection
    • Le collection si vedono nel Capitolo 2.
Tipi di dati ed eccezioni in Java

I wrapper possono essere null

  • I wrapper permettono a variabili di istanza o statiche del tipo di essere null
    • Le variabili primitive di istanza o statiche hanno un valore di default se non inizializzate
int herAge; // age è 0 di default
Integer hisAge = null;
if (hisAge != null) {
  // fai qualcosa quando hisAge non è impostata
}
Tipi di dati ed eccezioni in Java

Ayo berlatih!

Tipi di dati ed eccezioni in Java

Preparing Video For Download...