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

11. Типи даних у мові Java

Java строго типізована мова. Тобто будь-яка змінна і будь-який вираз мають відомий тип ще на момент компіляції. Чітке розуміння моделі типів даних в Java сильно допомагає створювати якісні програми. Всі типи даних розділяють на дві групи. Першу складають 8 простих або примітивних (primitive) типів даних. Вони поділяються на три підгрупи:

Цілочислові (integer)

byte

short

int

long

char (також є цілочисловим типом)

дробові (floating-point)

float

double

булевий

boolean

Другу групу утворюють об’єктні або типи посилання (reference). Це все класи, інтерфейси і масиви. Крім стандартних, написані багато класів і інтерфейсів, на основі яких будується Javaпрограма.

12. Клас Object

Object це базовий клас для всіх інших об'єктів в Java. Кожен клас успадковується від Object . Відповідно всі класи успадковують методи класу Object .

Методи класу Object :

   public final native Class getClass ( ) - Цей метод повертає об'єкт класу Class , який описує клас ( імяб методи , поля) , від якого був породжений цей об'єкт .

   public native int hashCode ( ) - даний метод повертає значення int . Мета hashCode ( ) - представити будь-який об'єкт цілим чіслом.Конечно , не можна вимагати , щоб різні об'єкти повертали різні хеш- коди , але , принаймні , необхідно , щоб об'єкти , рівні за значенням (метод equals () повертає true ) , повертали однакові хеш -коди.

   public boolean equals ( Object obj ) - equals ( ) служить для порівняння об'єктів за значенням , а не за посиланням . Порівнюється стан об'єкта , у якого викликається цей метод , з переданим аргументом.

Point p1 = new Point (2,3) ;

Point p2 = new Point (2,3) ;

print ( p1.equals ( p2) ) ;

Результатом буде false .

protected native Object clone ( ) throws CloneNotSupportedException

При виконанні методу clone ( ) спочатку перевіряється , чи можна клонувати вихідний об'єкт . Якщо розробник хоче зробити об'єкти свого класу доступними для клонування через Object.clone ( ) , то він повинен реалізувати у своєму класі інтерфейс Cloneable . У цьому інтерфейсі немає жодного елемента , він служить лише ознакою для віртуальної машини , що об'єкти можуть бути клоновані. Якщо перевірка не виконується успішно , метод породжує помилку CloneNotSupportedException .

Якщо інтерфейс Cloneable реалізований , то породжується новий об'єкт від того ж класу , від якого був створений вихідний об'єкт . При цьому копіювання виконується на рівні віртуальної машини , ніякі конструктори не викликаються . Потім значення всіх полів , оголошених , успадкованих або оголошених в батьківських класах , копіюються. Отриманий об'єкт повертається в якості клону.

Зверніть увагу , що сам клас Objectне реалізує інтерфейс Cloneable , а тому спроба виклику new Object ( ) . Clone ( ) буде приводити до помилки. Метод clone ( ) призначений скоріше для використання в спадкоємців , які можуть звертатися до нього за допомогою виразу super.clone ( ) . Примітивні поля копіруються і далі існують незалежно в вихідному і клонованій об'єктах. Зміна одного не позначається на іншому.

А ось посилальні поля копіюються за посиланням , обидва об'єкти посилаються на одну і ту ж область пам'яті ( вихідний об'єкт ) . Тому зміни, які з вихідним об'єктом , позначаються на клонованій .

public String toString ( ) - Цей метод дозволяє отримати текстовий опис будь-якого об'єкта. Створюючи новий клас , даний метод можна перевизначити і повертати більш докладний опис. Для класу Object та його спадкоємців , що не перевизначити toString ( ), метод повертає наступний вираз :

getClass ( ) . getName ( ) + "@" + hashCode ( )

Метод getName ( ) класу Class вже приводився в приклад , а хеш -код ще додатково обробляється спеціальною функцією для подання в шістнадцятковому форматі .

наприклад:

print ( new Object ( )) ;

Результатом буде :

java.lang.Object @ 92d342

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