Używanie pakietów

Typy danych i wyjątki w Javie

Jim White

Java Developer

Czym są pakiety Java?

  • Pakiety organizują kod Java
    • Pakiet działa jak folder lub katalog
    • Grupuje powiązany kod Java (klasy, interfejsy, enumy itp.)
  • Jak foldery
    • Każdy pakiet ma nazwę

Pakiety Java są jak foldery i szafki na akta do organizowania kodu

1 Image from https://commons.wikimedia.org/wiki/File:File_Cabinet.jpg
Typy danych i wyjątki w Javie

Rodzaje pakietów

  • Pakiety wbudowane
    • Część języka Java
    • Nazwa zaczyna się od „java" lub „javax"
  • Pakiety użytkownika
    • Pakiety tworzone przez nas
    • Pakiety od podmiotów zewnętrznych
Typy danych i wyjątki w Javie

Nazwy pakietów

  • Nazwy pakietów podlegają konwencji
    • Pisane małymi literami
    • Części nazwy oddzielane kropką (.)
  • Pakiety wbudowane
    • Zaczynają się od java lub javax
    • Pozostała część nazwy sugeruje przeznaczenie
  • Nazwy pakietów użytkownika
    • Zaczynają się od odwróconej domeny organizacji
    • Pozostała część nazwy sugeruje funkcjonalność
  • Przykładowe pakiety wbudowane

    java.security
    java.time
    
  • Przykładowe nazwy pakietów użytkownika

    com.mycompany.myproject
    com.mycompany.myproject.account
    com.mycompany.myproject.controller
    com.mycompany.myproject.ui
    
Typy danych i wyjątki w Javie

Pakiety wbudowane

Najczęściej używane pakiety wbudowane

Pakiet Zawartość
java.lang Podstawowe klasy języka
java.io Operacje wejścia/wyjścia
java.util.logging Framework logowania
java.math Arytmetyka precyzyjnych liczb całkowitych i dziesiętnych
java.net Operacje sieciowe
java.util Data/czas oraz struktury danych: listy, słowniki i inne
java.security Framework bezpieczeństwa
Typy danych i wyjątki w Javie

java.math

  • java.math dostarcza klasy do arytmetyki
    • Stosowany w kryptografii, nauce i finansach
  • BigInteger do reprezentowania dużych liczb całkowitych
    • Większych niż int lub long
    • Obsługuje liczby całkowite o niemal nieograniczonej liczbie cyfr.
  • BigDecimal do reprezentowania bardzo dużych lub małych liczb zmiennoprzecinkowych
    • Eliminuje błędy zaokrąglania float i double
Typy danych i wyjątki w Javie

Używanie pakietów

  • Użyj import + nazwa pakietu na początku pliku
import java.math.BigInteger;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
}
  • Pakiety mogą zawierać wiele typów.
    • Użyj *, aby zaimportować wszystkie typy z pakietu
import java.math.*;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
  BigDecimal pi = new BigDecimal("3.14");
}
Typy danych i wyjątki w Javie

BigInteger i BigDecimal z java.math

  • BigInteger i BigDecimal to klasy opakowujące dla dużych liczb
  • Tworzone za pomocą String lub wartości liczbowej
  • Posiadają metody add, subtract, multiply i divide
  • Mają dodatkowe metody, np. pow (potęgowanie)
// Imports go at the top of the class
import java.math.BigInteger;
import java.math.BigDecimal;

// Create BigInteger or BigDecimal with String
BigInteger big = new BigInteger("1000");
BigInteger ten = new BigInteger("10");
BigDecimal pi = new BigDecimal("3.14");
// Using a primitive to create BigDecimal
BigDecimal one = new BigDecimal(1.0);
BigInteger x = big.add(ten); // = 1010
BigDecimal y = pi.add(one); // = 4.14
BigInteger bigSqr = big.pow(2); // = 1000000
BigDecimal piCubed = pi.pow(3); // = 30.959144
Typy danych i wyjątki w Javie

Metody BigInteger i BigDecimal

Metoda Opis
abs() Wartość bezwzględna liczby
add(x) Dodaje x do liczby
divide(x) Dzieli liczbę przez x
multiply(x) Mnoży liczbę przez x
negate() Neguje liczbę
pow(int x) Potęguje liczbę do x
subtract(x) Odejmuje x od liczby
1 See https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html and https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
Typy danych i wyjątki w Javie

Import niewymagany

  • Ważne – pakiet java.lang jest importowany automatycznie.
    • Użycie elementów z java.lang nie wymaga importu
  • java.lang zawiera System, String, klasy opakowujące i Exception.
    • Dlatego można używać podstawowych elementów języka bez instrukcji import.
Typy danych i wyjątki w Javie

Czas na ćwiczenia!

Typy danych i wyjątki w Javie

Preparing Video For Download...