- •Методичні вказівки
- •Частина іii. Java
- •1 Лабораторна робота № 1 Знайомство з Java 7
- •2 Лабораторна робота № 2 Створення графічного інтерфейсу 24
- •2.1 Мета роботи 24
- •3 Лабораторна робота № 3 Об’єктно-орієнтоване програмування в Java 33
- •3.1 Мета роботи 33
- •1Лабораторна робота № 1 Знайомство з Java
- •1.1Мета роботи
- •1.2Основні теоретичні відомості
- •1.2.1Константи Цілі Дійсні Символи Рядки
- •1.2.2Імена
- •1.2.3Примітивні типи даних і операції
- •1.2.4Дійсні типи
- •1.2.5Операції присвоювання
- •1.2.6Оператори
- •1.2.7Масиви
- •1.3Завдання до роботи
- •1.4.2 Завдання до роботи.
- •1.5Контрольні запитання
- •2Лабораторна робота № 2 Створення графічного інтерфейсу
- •2.1Мета роботи
- •2.2Основні теоретичні відомості
- •2.3Завдання до роботи
- •2.4.2 Завдання до роботи.
- •2.5Контрольні запитання
- •3.2.2Абстрактні методи й класи
- •3.2.3Остаточні члени й класи
- •3.2.4Клас Object
- •3.2.5Конструктори класу
- •3.2.6Операція new
- •3.2.7Статичні члени класу
- •3.2.8Клас Complex
- •3.3Завдання до роботи
- •3.4.2 Завдання до роботи.
- •3.5Контрольні запитання
- •4Лабораторна робота № 4 Пакети й інтерфейси
- •4.1Мета роботи
- •4.2Основні теоретичні відомості
- •4.2.1Права доступу до членів класу
- •4.2.2Імпорт класів і пакетів
- •4.2.3Інтерфейси
- •4.3Завдання до роботи
- •4.4.2 Завдання до роботи.
- •4.5Контрольні запитання
- •5Лабораторна робота № 5 Класи-оболонки
- •5.1Мета роботи
- •5.2Основні теоретичні відомості
- •5.2.1Клас Boolean Клас Character
- •5.2.2Клас Biglnteger
- •5.2.3Клас Big Decimal
- •5.3Завдання до роботи
- •5.4.2 Завдання до роботи.
- •5.5Контрольні запитання
- •6Лабораторна робота № 6 Робота з рядками
- •6.1Мета роботи
- •6.2Основні теоретичні відомості
- •6.3Завдання до роботи
- •6.4.2 Завдання до роботи.
- •6.5Контрольні запитання
- •7.2.2Клас Stack Клас Hashtable Клас Properties
- •7.2.3Інтерфейс Collection
- •7.2.4Інтерфейс ListIterator
- •7.2.5Колекції
- •7.3Завдання до роботи
- •7.4.2 Завдання до роботи.
- •7.5Контрольні запитання
- •8.2.2Локальні установки
- •8.2.3Робота з датами й часом
- •8.2.4Одержання випадкових чисел
- •8.2.5Взаємодія із системою
- •8.3Завдання до роботи
- •8.4.2 Завдання до роботи.
- •8.5Контрольні запитання
- •Література
5.2.2Клас Biglnteger
Всі примітивні цілі типи мають обмежений діапазон значень. У цілочисельної арифметиці Java немає переповнення, цілі числа приводяться по модулю, рівному діапазону значень.
Для того щоб було можна робити цілочисельні обчислення з будь-якою розрядністю, до складу Java API введений клас Biglnteger, що зберігається в пакеті java.math. Цей клас розширює клас Number, отже, у ньому перевизначені методи doubleValue(), floatValue(), intValue(), longValue(). Методи byteValue() і shortValue() не перевизначені, а прямо успадковуються від класу Number.
Дії з об'єктами класу Biglnteger не приводять ні до переповнення, ні до приведення по модулю. Якщо результат операції великий, то число розрядів просто збільшується. Числа зберігаються у двійковій формі з додатковим кодом.
Перед виконанням операції числа вирівнюються по довжині доповненням знакового розряду.
Шість конструкторів класу створюють об'єкт класу BigDecimal з рядка символів(знака числа й цифр) або з масиву байтів.
Дві константи - ZERO і ONE - моделюють нуль і одиницю в операціях з об'єктами класу Biglnteger.
Метод toByteArray() перетворює об'єкт у масив байтів.
Більшість методів класу Biglnteger моделюють цілочисельні операції й функції, повертаючи об'єкт класу BigInteger:
– abs() – повертає об'єкт, що містить абсолютне значення числа, що зберігається в даному об'єкті this;
– add(x) – операція this + х ;
– and(x) – операція this & х ;
– andNot(x) – операція this &(~х) ;
– divide(x) – операція this / х ;
– divideAndRemainder(х) – повертає масив із двох об'єктів класу Biglnteger, що містять частку й залишок від розподілу this на х ;
– gcd(x) – найбільший загальний дільник, абсолютних, значень об'єкта this і аргументу х ;
– mах(х) – найбільше зі значень об'єкта this і аргументу х ;
– min(x) – найменше зі значень об'єкта this і аргументу х ;
– mod(x) – залишок від розподілу об'єкта this на аргумент методу х ;
– modInverse(x) – залишок від розподілу числа, зворотного об'єкту this, на аргумент х ;
– modPow(n, m) – залишок від розподілу об'єкта this, зведеного в ступінь n, на m ;
– multiply(х) – операція this * х ;
– negate() – зміна знака числа, що зберігається в об'єкті;
– not() – операція ~this ;
– оr(х) – операція this | х ;
– pow(n) – операція зведення числа, що зберігається в об'єкті, у ступінь n ;
– remainder(х) – операція this % х ;
– shiftLeft(n) – операція this « n ;
– shiftRight(n) – операція this » n;
– signum() – функція sign(x) ;
– subtract(x) – операція this - x ;
– xor(x) – операція this ^ x.
У програмі 5.3 наведені приклади використання даних методів, а рис. 5.3 показує результати виконання цієї програми.
Рисунок 5.3 – Методи класу Biglnteger у програмі BiglntegerTest
Програма 5.2. Методи класу Biglnteger у програмі BiglntegerTest
import Java.math.Biglnteger;
class BiglntegerTest{
public static void main(String[] args){
Biglnteger a = new Biglnteger("99999999999999999") ;
Biglnteger b = new Biglnteger("88888888888888888888");
System.out.println("bits in a = " + a.bitLength());
System.out.println("bits in b = " + b.bitLength);
System.out.println("a + b = " + a.add(b));
System.out.println("a & b = " + a.and(b));
System.out.println("a & ~b = " + a.andNot(b));
System.out.println("a / b = " + a.divide(b));
Biglnteger[] r = a.divideAndRemainder(b);
System.out.println("a / b: q = " + r[0] + ", r = " + r[l]);
System.out.println("gcd(a, b) = " + a.gcd(b));
System.out.println("max(a, b) = " + a.max(b));
System.out.printin("min(a, b) = " + a.min(b));
System.out.println("a mod b = " + a.mod(b));
System.out.println("I/a mod b = " + a.modlnverse(b));
System.out.println("алп mod b = " + a.modPow(a, b));
System.out.println("a * b = " + a.multiply(b));
System.out.println("-a = " + a.negate());
System, out. println("~a = " + a.not());
System.out.println("a | b = " + a.or(b));
System.out.println("а л 3 = " + a.pow(3));
System.out.println("a % b = " + a.remainder(b));
System.out.println("a « 3 = " + a.shiftLeft(3)};
System.out.println("a » 3 = " + a.shiftRight(3));
System.out.println("sign(a) = " + a.signum());
System.out.println("a - b = " + a.subtract(b));
System.out.println("а л b = " + a.xor(b));
}
}
Зверніть увагу на те, що в програму 5.2 треба імпортувати пакет Java.math.