Klasa Integer, zwana również klasą opakowującą(wrapper class) zawiera w sobie gotowe do użycia funkcje, jest odpowiednikiem typu prostego int. Klasa ta opakowuje w obiekt wartość typu prostego int. Warto przeczytać dokumentację, możemy się przekonać, że typ złożony Integer daje nam więcej możliwości niż typ prosty int.
Klasa Integer zawiera łącznie 5 zmiennych klasowych, które tak naprawdę są stałymi 🙂 – BYTES, MAX_VALUE, MIN_VALUE, SIZE I TYPE.
Klasa Integer zawiera bardzo dużo przydatnych funkcji, oto niektóre z nich:
package com.cku.basics;
public class TypeInteger {
public static void main(String[] args) {
int liczba = 115;
//korzystanie ze stałych dostępnych w klasie Integer
System.out.println("Typ int zawiera " + Integer.BYTES + " bajty");
System.out.println("Typ int zawiera " + Integer.SIZE + " bity");
System.out.println("Maksymalna wartość int to " + Integer.MAX_VALUE);
System.out.println("Minimalna wartość int to " + Integer.MIN_VALUE);
//tworzenie obiektu
//dzięki takiemu zabiegowi liczba zostaje przekonwertowana na obiekt i dostaje dostęp do funkcji wbudowanych dla tego typu złożonego
Integer liczbaI = Integer.valueOf(liczba);
//obecnie niezalecane użycie konstruktora: Integer val = new Integer(1);
//konwersja na String
System.out.println(liczbaI.toString());
//konwersja na float
System.out.println(liczbaI.floatValue());
//konwersja na double
System.out.println(liczbaI.doubleValue());
//konwersja na long
System.out.println(liczbaI.longValue());
//konwersja na int
System.out.println(liczbaI.intValue());
//nie musimy konwertować typu int na Integer, by skorzystać z funkcji statycznych dostępnych dla typu złożonego Integer
//założeniem obiektowości jest możliwość korzystania z metod statycznych nie tworząc obiektu
//przykład wywołania metod statycznych dla klasy Integer:
//format szesnastkowy
String hex = Integer.toHexString(liczba);
System.out.println(hex);
//format binarny
System.out.println(Integer.toBinaryString(liczba));
//format ósemkowy
System.out.println(Integer.toOctalString(liczba));
//dekodowanie pozwala stworzyć int ze String
System.out.println("Decode: " + Integer.decode(hex));
System.out.println("Dekodowanie 0xFF " + Integer.decode("0xFF"));
//możemy też przekształcić String na int tak
System.out.println("Zmiana String na int " + Integer.parseInt("+2021"));
//możemy przekonwertować String z konkretnego systemu liczbowego
//decymalny parseInt(String s, int radix)
System.out.println("Z 10go: " + Integer.parseInt("-12345", 10));
//ósemkowy
System.out.println("Z 8kowego: " + Integer.parseInt("027", 8));
//hexadecymalny
System.out.println("Z hexa: " + Integer.parseInt("FF", 16));
//z binarnego
System.out.println("Z binarnego: " + Integer.parseInt("1100110", 2));
//możemy porównywać 2 liczby ze sobą, zwraca 0 gdy są równe, a -1 w przeciwnym wypadku
System.out.println(Integer.compare(12,12));
Integer l1 = Integer.valueOf(2);
Integer l2 = Integer.valueOf(2);
System.out.println(l1.compareTo(l2));
//lepsza metoda porównywania:
System.out.println(l1.equals(l2));
}
}