close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Zdjęcie główne artykułu.

Java - konwersja typów i rzutowanie

W tym artykule pokażemy podstawy dwóch bardzo ważnych operacji w języku Java: konwersji typów oraz rzutowania. Zaczynamy!

co to jest konwersja plików i rzutowanie w języku java

Java to sprawdzony, niezawodny i bardzo rozpowszechniony język programowania.

Dowiedz się więcej

Jak używamy konwersji typów

Konwersja jest to przekształcenie jednego typu w inny typ. Poniższy rysunek przedstawia możliwe konwersje w języku Java. Dla ułatwienia sprawy możemy ci podpowiedzieć, że konwersja zachodzi gdy przechodzimy z typu, który zajmuje mniej pamięci operacyjnej na typ, który tej pamięci zajmuje więcej (lub zajmują tyle samo pamięci).

Proste przykłady:


byte (1 bajt) na short (2 bajty)    - konwersja zachodzi
short (2 bajty) na int (4 bajty)    - konwersja zachodzi

ALT_TEXT

Strzałkami ciągłymi zostały oznaczone konwersje, które nie powodują utraty danych. Strzałkami przerywanymi oznaczono konwersje, które mogą powodować utratę części danych.

Przykład utraty precyzji

Duża liczba całkowita 123456789 jest zbyt duża aby zmieścić się w typie float. Po konwersji tej liczby na liczbę typu float stracimy na precyzji. Spójrz na poniższy przykład:


public class Main {
    public static void main(String[] args) {
        int number = 123456789;
        float numberF = number;
       
        System.out.println("number:  " + number);
        System.out.println("numberF: " + numberF);
    }
}

Rezultat:


number: 123456789
numberF: 1.23456792E8

Kluczowe reguły konwersji

Miksowanie zmiennych o różnych typach wiąże się z pewnymi regułami, które powinieneś znać:

  • jeśli któraś liczba jest typu double, druga również zostanie przekonwertowana na typ double,
  • w przeciwnym wypadku, jeśli któraś liczba jest typu float, druga zostanie przekonwertowana na typ float,
  • w przeciwnym wypadku, jeśli któraś liczba jest typu long, druga również zostanie przekonwertowana na typ long,
  • w przeciwnym wypadku obie liczby zostaną przekonwertowane na typ int.

Przykład miksowania zmiennych typu float ze zmiennymi typu int:


public class Main {
    public static void main(String[] args) {
        float pi = 3.14f;
        int r = 2;
       
        float area = 2 * pi * r;
       
        System.out.println("circle area:  " + area);
    }
}

Rezultat:


circle area: 12.56

Jak widzisz miksowanie typów działa, ale musisz być świadomy tego co robisz.

Jak działa rzutowanie

Konwersja zmiennej do typu int na double jest możliwa. A co by się wydarzyło gdybyśmy spróbowali to zrobić odwrotnie?. Spójrz na poniższy kod i rezultat:


public class Main {
    public static void main(String[] args) {
        double variableA = 10.1;
        int result = variableA;
    }
}

Rezultat:


incompatible types: possible lossy conversion from double to int

Pojawił się błąd czyli "niekompatybilne typy danych".

Możemy tutaj zastosować rozwiązanie siłowe czyli rzutowanie. Kompilator ostrzega o utracie danych, ale możesz się z nim nie zgodzić i dokonać rzutowania. Jak to zrobić? Aby wykonać rzutowanie wystarczy przed nazwą rzutowanej zmiennej wstawić w nawiasach nazwę typu, na jaki chcemy rzutować. Sytuacja została przedstawiona poniżej.


public class Main {
    public static void main(String[] args) {
        double variableA = 10.1;
        int result = (int)variableA;
    }
}

W wyniku rzutowania zmienna result będzie miała wartość 10 ponieważ rzutowanie liczby zmiennoprzecinkowej na całkowitą powoduje usunięcie jej części ułamkowej. Miej świadomość swoich czynów. Kompilator ostrzegał przed taką sytuacją.

poznaj konwersje plików i rzutowanie w języku java

Java to sprawdzony, niezawodny i bardzo rozpowszechniony język programowania.

Dowiedz się więcej

Podsumowanie

Konwersja typów oraz rzutowanie to istotne operacje w języku Java. Należy jednak wykonywać je ostrożnie, ze względu na ryzyko utraty precyzji danych.

Jeśli dobrze poznać język Java i zdobyć umiejętności potrzebne do pracy na stanowisku Junior Java Developer, to zacznij naukę ze Ścieżką Kariery. Nauka kończy się egzaminem, który uprawnia cię do posługiwania się Certyfikatem Specjalisty.