Использование пакетов

Типы данных и исключения в Java

Jim White

Java Developer

Что такое пакеты Java?

  • Пакеты организуют код на Java
    • Пакет похож на папку или каталог
    • Объединяет связанный код (классы, интерфейсы, перечисления и т. д.)
  • Как файловые папки
    • Каждый пакет имеет имя

Пакеты Java похожи на папки и картотечный шкаф для организации кода

1 Image from https://commons.wikimedia.org/wiki/File:File_Cabinet.jpg
Типы данных и исключения в Java

Типы пакетов

  • Встроенные пакеты
    • Входят в состав Java
    • Имя начинается с "java" или "javax"
  • Пользовательские пакеты
    • Пакеты, которые мы создаём сами
    • Пакеты, полученные от сторонних разработчиков
Типы данных и исключения в Java

Имена пакетов

  • Имена пакетов подчиняются соглашению
    • Пишутся строчными буквами
    • Части имени разделяются точками (.)
  • Встроенные пакеты
    • Начинаются с java или javax
    • Остальная часть имени отражает назначение
  • Пользовательские пакеты
    • Начинаются с домена организации в обратном порядке
    • Остальная часть имени отражает функциональность
  • Примеры встроенных пакетов

    java.security
    java.time
    
  • Примеры пользовательских пакетов

    com.mycompany.myproject
    com.mycompany.myproject.account
    com.mycompany.myproject.controller
    com.mycompany.myproject.ui
    
Типы данных и исключения в Java

Встроенные пакеты

Наиболее часто используемые встроенные пакеты

Пакет Содержимое / Возможности
java.lang Базовые классы языка
java.io Операции ввода и вывода
java.util.logging Фреймворк логирования
java.math Точная целочисленная и десятичная арифметика
java.net Сетевые операции
java.util Дата / время и структуры данных: связный список, словарь и др.
java.security Фреймворк безопасности
Типы данных и исключения в Java

java.math

  • java.math предоставляет классы для арифметики
    • Используется в криптографии, научных и финансовых приложениях
  • BigInteger — для представления больших целых чисел
    • Чисел, выходящих за пределы int или long
    • Позволяет работать с целыми числами практически неограниченной длины
  • BigDecimal — для представления очень больших или малых чисел с плавающей точкой
    • Устраняет ошибки округления, характерные для float и double
Типы данных и исключения в Java

Использование пакетов

  • Используйте import + имя пакета в начале файла
import java.math.BigInteger;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
}
  • Пакет может содержать много типов.
    • Используйте *, чтобы импортировать все типы пакета
import java.math.*;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
  BigDecimal pi = new BigDecimal("3.14");
}
Типы данных и исключения в Java

BigInteger и BigDecimal из java.math

  • BigInteger и BigDecimal — обёртки для больших чисел
  • Создаются на основе String или числового значения
  • Имеют методы add, subtract, multiply и divide
  • Также доступны дополнительные методы, например pow для возведения в степень
// 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
Типы данных и исключения в Java

Методы BigInteger и BigDecimal

Метод Описание
abs() Абсолютное значение числа
add(x) Прибавить x к числу
divide(x) Разделить число на x
multiply(x) Умножить число на x
negate() Изменить знак числа на противоположный
pow(int x) Возвести число в степень x
subtract(x) Вычесть x из числа
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
Типы данных и исключения в Java

Импорт не требуется

  • Важно — пакет java.lang импортируется автоматически.
    • При использовании классов из java.lang явный импорт не нужен
  • java.lang включает System, String, классы-обёртки и Exception.
    • Именно поэтому базовые элементы языка доступны без явного импорта.
Типы данных и исключения в Java

Давайте потренируемся!

Типы данных и исключения в Java

Preparing Video For Download...