Obalové třídy

Datové typy a výjimky v Javě

Jim White

Java Developer

8 primitivních typů v Javě

8 primitivních typů jazyka Java jsou základní datové typy, ze kterých jsou konstruována veškerá data.

Datové typy a výjimky v Javě

Obalové třídy

  • Každý primitivní typ má odpovídající obalovou třídu
Primitiv Obalová třída
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Obalové třídy umožňují zacházet s primitivy jako s objekty. Obalové třídy jsou podtřídami třídy Object.

Datové typy a výjimky v Javě

Obalování primitivů

  • Instance obalové třídy uchovává jeden primitiv
    • Příklad: Integer uchovává jednu hodnotu primitivu int

Obalové objekty obsahují jako svou hodnotu primitiv

Datové typy a výjimky v Javě

Podrobnosti o obalových třídách

  • Obalové třídy mají další pole a metody
    • Pole (např. maximální hodnota) o daném typu
    • Metody pro práci s obalovaným primitivním typem
  • Obalové třídy jsou součástí základního jazyka
    • Lze je používat bez import (více o importech později)
Datové typy a výjimky v Javě

Vytváření obalových objektů

  • Přiřaďte primitiv proměnné obalového typu
    • Syntaxe: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Obalové objekty mohou mít také žádnou hodnotu (null)
Integer age = null;
Datové typy a výjimky v Javě

Používání obalových objektů

Integer age = 12;
  • Vypsat je
    System.out.println(age);    // Displays 12
    
  • Získat jejich primitivní hodnotu
    int x = age.intValue();     // x is assigned 12
    
  • Provádět další operace s nimi
    double z = age.doubleValue();  //z is 12.0
    String y = age.toString();  // y is assigned "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller is -1 since 12 < 16
    
Datové typy a výjimky v Javě

Statické metody obalových tříd

  • Obalové třídy obsahují statické metody
  • Slouží k provádění operací s příslušnými primitivy
    int x = Integer.sum(8,12);  // x is 20
    int y = Integer.remainderUnsigned(102, 10);  // y is 2
    
  • Slouží k převodu mezi String a primitivem
    int z = Integer.parseInt("123");   // z is 123;
    boolean ans = Boolean.parseBoolean("false");  // ans is false
    
1 Viz https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html pro více informací o obalové třídě Integer
Datové typy a výjimky v Javě

Statická pole obalových tříd

Příklady statických polí obalových tříd

System.out.println(Integer.MAX_VALUE); // Maximum value an int can have
System.out.println(Integer.MIN_VALUE); // Minimum value an int can have
2147483647
-2147483648
System.out.println(Boolean.TRUE); // Corresponding to the primitive value of true
System.out.println(Boolean.FALSE); // Corresponding to the primitive value of false
true
false
Datové typy a výjimky v Javě

Statická pole obalových tříd

Příklady statických polí obalových tříd

System.out.println(Character.SPACE_SEPARATOR);  // Unicode for the regular space like ' '
System.out.println(Character.LINE_SEPARATOR); // Unicode for line return like '\n'
12
13
Datové typy a výjimky v Javě

Užitečné metody obalových tříd

Metoda obalové třídy Návratová hodnota
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 hodnota znaku
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() hodnota Double zaokrouhlená dolů jako Long
Datové typy a výjimky v Javě

Proč obalové třídy?

  • Primitivy nemají metody (pouze operace)
    • Obalové třídy přinášejí užitečné metody
      int score = Integer.parseInt("8");
      
  • Obalové třídy umožňují používat primitivy jako objekty; například v kolekcích
    • O kolekcích se dozvíte v kapitole 2.
Datové typy a výjimky v Javě

Obalové třídy mohou mít hodnotu null

  • Obalové třídy umožňují, aby instanční nebo statické proměnné daného typu měly hodnotu null
    • Instanční nebo statické proměnné primitivního typu mají výchozí hodnotu, pokud nejsou inicializovány
int herAge; // age is 0 by default
Integer hisAge = null;
if (hisAge != null) {
  // do something when hisAge is not set
}
Datové typy a výjimky v Javě

Lass uns üben!

Datové typy a výjimky v Javě

Preparing Video For Download...