Czym są klasy Wrapper w Javie?

Klasy Wrapper w Javie są kluczowym elementem, który pozwala na przechowywanie typów prostych (prymitywnych) jako obiekty. Java używa typów prostych, takich jak int, double, char, które nie są obiektami; mają one bezpośrednie wartości i nie posiadają metod. Klasy Wrapper, takie jak Integer, Double, Character, zapewniają sposób na traktowanie prostych typów danych jak obiektów, co jest bardzo użyteczne, np. w kolekcjach typu ArrayList, które mogą przechowywać tylko obiekty.

Przykład kodu z klasą Wrapper

Poniżej przedstawiam kompletny przykład użycia klasy Wrapper w Java. W przykładzie tym skonwertujemy prosty typ int na obiekt Integer i wykonamy na nim kilka operacji, pokazując możliwości, które oferują klasy Wrapper.

public class WrapperExample {
    public static void main(String[] args) {
        // Inicjalizacja zmiennej typu int
        int primitive = 5;
        
        // Konwersja typu prymitywnego na obiekt klasy Wrapper
        Integer wrappedInteger = Integer.valueOf(primitive);

        // Wyświetlenie wartości obiektu klasy Wrapper
        System.out.println("Wartość opakowanego Integer: " + wrappedInteger);

        // Przykład operacji na klasie Wrapper - porównanie
        Integer anotherInteger = 5;
        // Sprawdzenie, czy obie wartości są takie same
        System.out.println("Czy obiekt jest równy 5? " + wrappedInteger.equals(anotherInteger));

        // Operacja autoboxing - automatyczna konwersja int na Integer
        Integer autoBoxed = primitive;  // Autoboxing int do Integer
        // Sprawdzenie, czy automatycznie opakowany Integer jest równy 5
        System.out.println("Czy autoboxed Integer jest równy 5? " + autoBoxed.equals(5));

        // Operacja unboxing - konwersja z Integer na int
        int unboxed = wrappedInteger;  // Unboxing Integer do int
        // Wyświetlenie wartości po unboxingu
        System.out.println("Wartość po unboxingu: " + unboxed);
    }
}

Opis kodu

  1. Inicjalizacja typu prymitywnego: zaczynamy od zadeklarowania zmiennej prymitywnej int.
  2. Konwersja na klasę Wrapper: używamy metody Integer.valueOf(), aby przekształcić int na Integer.
  3. Operacje na klasie Wrapper: wykonujemy różne operacje, takie jak porównanie i autoboxing, aby pokazać, jak można manipulować wartościami jako obiektami.
  4. Autoboxing: Java automatycznie konwertuje int na Integer przy przypisaniu.
  5. Unboxing: proces odwrotny do autoboxingu, gdzie obiekt Integer jest konwertowany z powrotem na int.

Podsumowanie

Klasy Wrapper w Javie są niezwykle przydatne, gdy potrzebujemy używać typów prymitywnych jako obiektów, na przykład w kolekcjach obiektowych. Pozwalają one na pełniejsze wykorzystanie funkcjonalności obiektowych w języku Java, ułatwiając operacje takie jak porównanie, przechowywanie w kolekcjach czy używanie w kontekście wymagającym obiektów. Dzięki klasom Wrapper, Java staje się bardziej elastycznym językiem programowania.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top