Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпори JAVA.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
178.34 Кб
Скачать

62.Класи обгортки для примітивних типів.

У багатьох випадках буває краще працювати саме з об'єктами , а не примітивними типами . Так , наприклад , при використанні колекцій , просто необхідно значення примітивних типів якимось чином представляти у вигляді об'єктів. Для цих цілей і призначені так звані класи - обгортки. Для кожного примітивного типу Java існує свій клас обгортка . Такий клас є незмінним (тобто , для зміни значення необхідно створювати новий об'єкт ) , до того ж має атрибут final Від нього не можна наслідувати клас . Всі класи - обгортки (крім Void ) реалізують інтерфейс Serializable , тому об'єкти будь-якого ( крім Void ) класу - обгортки можуть бути серіалізовані . Всі класи - обгортки містять статичне поле TYPE -яке містить об'єкт Class ,який відповідає примітивнму типу. Так само класи - обгортки містять статичні методи для забезпечення зручного маніпулювання відповідними примітивними типами , наприклад перетворення до строкового виду.

Клас обгортка

Примітивний тип

Byte

byte

Short

short

Character

char

Integer

int

Long

long

Float

float

Double

double

Boolean

boolean

Всі класи-обгортки реалізують інтерфейс Comparable. Number реалізує інтерфейс java.io.Serializable, тому всі об'єкти класів-обгорток примітивних числових типів можуть бути серіалізовані. Всі класи-обгортки числових типів мають метод equals (Object), що порівнює примітивні значення об'єктів.

1 . Integer : Найбільш часто використовувані статичні методи . public static int parseInt ( String s ) - перетворює в int значення рядок , що представляє десятковий запис цілого числа та public static int parseInt ( String s , int radix ) - перетворює в int значення рядок , що представляє запис цілого числа в системі числення radix Обидва ці методи можуть порушувати виняток NumberFormatException , якщо рядок ,переданий на вхід , містить нецифрові символи . Далі перераховані методи , що перетворюють int в строкове вісімкове , двійкове та шістнадцяткове представлення : pubic static String toOctalString ( int i ) – вісімкове pubic static String toBinaryString ( int i ) – двійкове pubic static String toHexString ( int i ) - шістнадцяткове.

2 . Character Реалізує інтерфейс Comparable . З конструкторів - має тільки один , який приймає char як параметр. Крім стандартних методів equals ( ) , hashCode ( ) , toString ( ) ще з НЕ статичних , містить тільки два методи: public char charValue ( ) - повертає огорнуте значення char та public int compareTo ( Character anotherCharacter ) - порівнює загорнуті значення char як числа , тобто повертає значення return this.value - anotherCharacter.value ;

3 . Boolean Являє клас - обгортку для примітивного типу boolean . Реалізує інтерфейс java.io.Serializable і в усьому нагадує аналогічні класи - обгортки. Для отримання примітивного типу використовується метод booleanValue ( ) .

4 . Void Цей клас - обгортка , на відміну від інших , НЕ реалізує інтерфейс java.io.Serializable . Він не має відкритого конструктора . Більш того , екземпляр цього класу взагалі не може бути отриманий. Він потрібен тільки для отримання посилання на об'єкт Class , відповідного void . Це посилання представлена ​​статичною константою TYPE .

Роблячи короткий висновок по класах - обгорткам , можна сказати що • кожен примітивний тип має відповідний клас – обгортку • всі класи - обгортки можуть бути сконструйовані як з використанням примітивних типів , так і з використанням String , за винятком Character , який може бути сконструйований тільки по char• Класи - обгортки можуть порівнюватися з використанням методу equals ( ) • примітивні типи можуть бути вилучені з класів - обгорток за допомогою відповідного методу xxxxValue ( ) (наприклад intValue ( )) • класи - обгортки так само є класами - утилітами , тобто надають набір статичних методів для роботи з примітивними типами • класи - обгортки не можуть бути модифіковані

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]