JAVA 10 Typy opakowujące i konwersja

background image

Przemysław Wionczyk

JAVA

Typy opakowujące

Typy opakowujące

i konwersja

i konwersja

1 / 10

background image

Przemysław Wionczyk

JAVA

Typy opakowujące

Ze względu na pełną obiektowość języka Java, w wielu miejscach

wymagane jest przekazanie wartości jako obiektu, nawet jeśli jest to

prosta wartość typu podstawowego. Z tego powodu w języku Java mamy

tak zwane typy opakowujące do typów podstawowych. Dodatkowo Java

zapewnia nam automatyczną konwersję ze zmiennych.

2 / 10

background image

Przemysław Wionczyk

JAVA

Typy opakowujące

Mamy nastpujące typy opakowujące:

dla byte mamy typ Byte,

dla short mamy typ Short,

dla int

mamy typ Integer,

dla long mamy typ Long,

dla float mamy typ Float,

dla double mamy typ Double,

dla char mamy typ Character.

3 / 10

background image

Przemysław Wionczyk

JAVA

Typy opakowujące

Dodatkowo Java zapewnia nam automatyczną konwersję ze

zmiennej typu podstawowego do odpowiadającego typu opakowującego

oraz odwrotnie. Działa to jak zwykłe przypisanie zmiennych

identycznych typów.

long liczba1 = 10000;
Long liczba2 = new Long(10000);

Konwersja następuje automatycznie, więc można napisać:

liczba1 = liczba2;
liczba2 = liczba1;

4 / 10

background image

Przemysław Wionczyk

JAVA

Liczby wysokiej precyzji

Java mamy dwa dodatkowe typy obiektowe do przechowywania

liczb dowolnej precyzji. Typ całkowity „BigInteger” przechowuje liczby

całkowite dowolnej precyzji. Deklarujemy zmienne tak jak obiekty

podając przechowywaną liczbę jako parametr w postaci tekstu:

BigInteger a = new BigInteger("1000000000");
BigInteger b = new BigInteger("3333333333");
a = a.add(b);
System.out.println(a);

Jak widać ze zmiennej nie korzystamy poprzez zwykłe operatory,

ale poprzez metody. Więcej można doczytać w dokumentacji klasy.

5 / 10

background image

Przemysław Wionczyk

JAVA

Liczby wysokiej precyzji

Typ zmiennoprzecinkowy „BigDecimal” przechowuje liczby

zmiennoprzecinkowe dowolnej precyzji:

BigDecimal c = new BigDecimal("444.4444444444");
BigDecimal d = new BigDecimal("2222.2222222222");
c = c.add(d);
System.out.println(c);

Wyświetlona zostanie liczba 2666.6666666666.

Tu również ze zmiennej nie korzystamy poprzez zwykłe operatory,

ale poprzez metody. Więcej można doczytać w dokumentacji klasy

BigDecimal.

6 / 10

background image

Przemysław Wionczyk

JAVA

Konwersja

Gdy obliczamy wartość wyrażenia, czasem wynik tego wyrażenia,

jest bądź może być (ze względu na typy zmiennych występujących

w wyrażeniu) typu którego nie chcemy. Na przykład:

Mnożąc dwie zmienne typu byte czyli przechowujące maksymalnie

liczbę 127 możemy dostać maksymalnie liczbę 127

2

która w typie byte

się nie mieści. Kompilator uważa wtedy, że wynik jest liczbą typu short,

ale my wiemy, że w naszym programie będą tam mnożone mniejsze

liczby i do przechowania wyniku można użyć zmiennej typu byte.

7 / 10

background image

Przemysław Wionczyk

JAVA

Konwersja (rzutowanie)

W takich sytuacjach musimy dokonać konwersji wyniku wyrażenia

na inny typ. Robimy to pisząc przed wyrażeniem nazwę typu, na który

rzutujemy, umieszczoną w nawiasie okrągłym:

byte a, b, wynik;
a = 13;
b = 12;
wynik = (byte) a * b;

8 / 10

background image

Przemysław Wionczyk

JAVA

Ćwiczenie 1

Znajdź dokumentację klas Integer i Float w internecie lub

dokumentacji na dysku. Sprawdź jak wykonywać standardowe działania

na liczbach tych typów.

Ćwiczenie 2

Napisz program wczyta dwie liczby od użytkownika, jedną do

zmiennej typu int, drugą do typu Integer. Wymnóż te liczby i wynik

zapisz w zmiennej typu int.

9 / 10

background image

Przemysław Wionczyk

JAVA

Ćwiczenie 3

Znajdź dokumentację klas BigInteger i BigDecimal w internecie

lub dokumentacji na dysku. Sprawdź jak wykonywać standardowe

działania na liczbach tych typów.

Ćwiczenie 4

Napisz program który zapyta użytkownika liczbę, a potem

sprawdzi czy jest to liczba pierwsza. Użytkownik ma możliwość podania

dowolnie dużej liczby, więc musisz użyć typu o wysokiej precyzji.

10 / 10


Wyszukiwarka

Podobne podstrony:
10 Typy reakcji chemicznychid 11130
Java 08 Typy uogolnione Kolekcje Strumienie Bazy danych
10 TYPY OSOBOWOŚCIid 11129 ppt
JAVA 10 Nieznany
JAVA podstawowe typy
notatki java 10
06-10, Typy operatory, Typy zmiennych
JAVA 10
10 TYPY OSOBOWOŚCIid 11129 ppt
java 10
Java praca domowa 10
Java 03 Podstawowe typy danych
Opakowania i przechowywalnictwo w żywności Wd1  10 09
JĘZYKOZNAWSTWO OGÓLNE-konwersatorium 14 i 21.10.2014, Językoznawstwo ogólne, Notatki z ćwiczeń z dr

więcej podobnych podstron