
- •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. Робота із пріоритетами потоків
4. Опишіть поняття “клас”
Всі монети з попереднього прикладу належать одному і тому ж класу об’єктів (саме з цим пов’язана їх однаковість). Номінальна вартість монети, метал, з якого вона виготовлена, форма – це атрибути класу:сукупність атрибутів і їх значень характеризує об’єкт. Поряд з терміном “атрибут” часто використовують терміни “властивість” і “поле”, які в ОЗП є синоніми.
Всі об’єкти одного і того ж класу описуються однаковими наборами атрибутів. Однак об’єднання об’єктів в класи визначається не наборами атрибутів, а семантикою. Так, наприклад, об’єкти конюшня і кінь можуть мати однакові атрибути:ціна і вік. Вони можуть відноситися до одного класу, якщо розглядаються в задачі як товар, або до різних класів, якщо в рамках поставленої задачі вони будуть використовуватися по-різному, тобто над ними будуть здійснюватися різні дії.
Об’єднання об’єктів у класи дозволяє розглянути задачу в більш загальній постановці. Клас має ім’я (наприклад, кінь), яке відноситься до всіх об’єктів цього класу. Крім цього, в класі вводяться імена атрибутів. Які визначені для об’єктів. У цьому розумінні опис класу аналогічний описові типу структури або запису (record), які широко використовуються в процедурному програмуванні; кожний об’єкт при цьому має той же зміст, що й екземпляр структури (змінна або стала відповідного типу).
Формально клас – шаблон поведінки об’єкта певного типу з певними параметрами, які визначають стан. Всі екземпляри одного класу (об’єкти, породжені від одного класу)
мають один і той же набір властивостей
спільну поведінку, однаково реагують на однакові повідомлення
Згідно з UML (UnifiedModelingLanguage, уніфікована мова моделювання) клас має таке графічне зображення: клас зображується прямокутником, який має три частини. У верхній частині розміщується назва класу, в середній частині – властивості об’єктів класу, в нижній – дії, які можна виконувати з об’єктами даного класу (методи).
Кожний клас може мати спеціальні методи, які автоматично викликаються при створенні і ліквідації класу:
конструктор (constructor) – виконується при створенні об’єктів;
деструктор (destructor) – виконується при ліквідації об’єктів.
Зазвичай, конструктор і деструктор мають спеціальний синтаксис, який може відрізнятися від синтаксису. Який використовується для запису звичайних методів.
5. Опишіть типи відношень між класами
Агрегація
Відношення між класами типу “містить” або “складається з” називається агрегацією або включенням. Наприклад, якщо акваріум наповнений водою і в ньому плавають рибки, то можна сказати, що акваріум агрегує в собі воду і рибок.
Таке відношення включення або агрегації (aggregation) зображується лінією з ромбикомна боці того класу, який є власником або контейнером. Необов’язкова назва відношення записується посередині лінії.
Асоціація
Якщо об’єкти одного класу посилаються на один або більше об’єктів другого класу, але ні в той, ні в другий бік відношення між об’єктами не має характеру “володіння” або конвеєризації, то таке відношення називають асоціацією (association). Відношення асоціації зображується так же, як і відношення агрегації, але лінія, яка пов’язує класи – проста, без ромбика
Як приклад розглянемо програміста і його комп’ютер. Між цими об’єктами нема агрегації. Так, завжди можна встановити за якими комп’ютерами працює який-небудь програміст, а також які люди користуються окремо взятим комп’ютером. В розглянутому прикладі є асоціація багато-до-багатьох.
Успадкування
Успадкування (inheritance) – це відношення між класами, при якому клас використовує структуру або поведінку іншого (одиночне успадкування) або інших (множинне успадкування) класів. Успадкування вводить ієрархію “загальне/часткове”, в якій підклас успадковує від одного або кількох більш загальних суперкласі. Підкласи зазвичай доповнюють або перевизначають успадковану структуру и поведінку. Як приклад розглянемо задачу, в якій необхідно реалізувати класи “Легковий автомобіль” і “Вантажний автомобіль”. Очевидно, ці два класи мають багато спільної функціональності. Так, вони обидва мають 4 колеса, двигун, можуть пересуватися и т.д. Усі ці властивості має будь-який автомобіль (не спеціальний, багатоколісний), не залежно від того вантажний він або легковий 5- або 12-місний. Розумно винести ці спільні властивості і функціональність в окремий клас, наприклад, “Автомобіль”, і успадкувати від нього класи “Легковий автомобіль” і “Вантажний автомобіль”, щоб уникнути повторного написання одного і того ж коду в різних класах.
Метакласи
Будь-який об’єкт має структуру, яка складається з полів і методів. Об’єкти, які мають однакову структуру і семантику, описуються одним класом, який за суттю є визначенням структури об’єктів, які породжені від нього.
Кожний клас завжди має строгий шаблон, який задається мовою програмування або вибраною об’єктною моделлю. Шаблон визначає припустиме чи ні множинне успадкування, які обмеження на іменування класів, як описуються поля и методи, набір існуючих типів даних й багато іншого.