
- •1. Історія створення Java.
- •2. Історія розвитку Java
- •3.Опишіть поняття “об’єкт”
- •4. Опишіть поняття “клас”
- •5. Опишіть типи відношень між класами
- •6. Переваги і недоліки об’єкто-зорієнтованого програмування
- •7. Опишіть правила побудови ідентифікаторів мови Java, наведіть приклади
- •8. Поняття літералів. Приклади
- •9. Оператори та операції в мові Java
- •11. Типи даних у мові Java
- •12. Клас Object
- •13. Клас String
- •14. Клас Class
- •15. Імена в Java
- •16. Пакети в Java
- •17. Область видимості імен
- •18.Об’ява класів у Java
- •19.Приведення типів у Java
- •21.Приведення посилальних типів даних.
- •22.Приведення до рядка.
- •23.Заборонені приведення.
- •24.Застосування приведення типів.
- •25.Статичні елементи.
- •26. Ключові слова this і super.
- •27. Ключове слово abstract.
- •28. Поняття інтерфейсів.
- •29. Поліморфізм.
- •30. Масиви в Java.
- •31. Приведення типів для масивів.
- •32. Клонування масивів.
- •33. Керування ходом виконання програми.
- •34. Нормальне і перерване виконання операторів.
- •35. Блоки і локальні змінні.
- •36. Порожній оператор.
- •38. Синтаксис оператора if.
- •39. Синтаксис оператора switch.
- •40. Керування циклами.
- •41.Синтаксис оператора while
- •42.Ситаксис оператора do
- •43.Синтаксис оператора for
- •44.Оператори break I continue
- •45.Іменовані блоки
- •46. Оператор return
- •47. Оператор synchronized
- •48. Помилки при роботі програми. Виняткові ситуації
- •48. Помилки при роботі програми. Виняткові ситуації
- •49.Причини виникнення помилок
- •50.Обробки виняткових ситуацій
- •51.Конструкція try-catch-finally
- •52.Використання оператора throw
- •53.Виняткові ситуації, які перевіряються і які не перевіряються
- •54.Створення класів користувача обробки виняткових ситуацій
- •55.Поняття потокв в Java
- •56.Базові класи для роботи з потоками
- •57.Класс Thread
- •58. Інтерфейс Runnable
- •60. Потоки-демони
- •61.Синхронізація роботи потоків.
- •62.Класи обгортки для примітивних типів.
- •63.Клас Math.
- •66.Клас Calendar.
- •67.Клас TimeZone.
- •68. Колекції java
- •69.Інтерфейс Collection.
- •70.Інтерфейс Set.
- •71.Інтерфейс List.
- •72.Інтерфейс Map.
- •73.Інтерфейс SortedSet.
- •74.Інтерфейс SortedMap.
- •75.Інтерфейс Iterator.
- •76.Конкретні класи колекцій.
- •77.Клас Properties.
- •78. Інтерфейс Comparator.
- •79.Клас BitSet.
- •80.Клас Random.
- •81.Система введення/виведення. Потоки даних.
- •82.Класи реалізації потоків даних.
- •84. Робота із файловою системою.
- •59. Робота із пріоритетами потоків
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