
- •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. Робота із пріоритетами потоків
45.Іменовані блоки
У реальній практиці , досить часто використовуються вкладені цикли . Відповідно може виникнути ситуація коли з вкладеного циклу потрібно перервати зовнішній . Просте використання break або continue не дозволяє цього завдання , проте в Java можливо іменувати блок коду і явно вказати цим операторам , до якого з них відноситься делаемое дію. Робиться шляхом присвоєння мітки операторам do , while , for . Метка - це будь-яка допустима в даному контексті лексема , що закінчується двокрапкою. Розглянемо наступний приклад ... int array [] [] = { .... } ; for ( int i = 0 ; i < 5 ; i + +) { for ( j = 0 ; j < 4 ; j + +) {... if ( array [ i ] [ j ] == caseValue ) break ; ... }} ...
У даному випадку , при виконанні умови буде перервано виконання циклу по j , цикл
по i продовжиться з наступного значення. Для того , що б перервати виконання обох циклів , використовується раніше згадана мовна конструкція ...
int array [] [] = { .... } ; outerLoop : for ( int i = 0 ; i < 5 ; i + +) { for ( j = 0 ; j < 4 ; j + +) {...
if ( array [ i ] [ j ] == caseValue ) break outerLoop ; ...} } ... Оператор continue так само може бути використаний з іменованими блокамі.Следует звернути увагу , що при використанні переходу continue на зовнішній блок , його дія схоже з дією break . Тобто виконання поточного блоку буде перервано і керування передасться на зовнішній блок.Прімер . ... Int array [] [] = { .... } ; outerLoop : for ( int i = 0 ; i < 5 ; i + +) { for ( j = 0 ; j < 4 ; j + +) {... if ( array [ i ] [ j ] == caseValue ) continue outerLoop ; ...} } ... і ...
int array [] [] = { .... } ; for ( int i = 0 ; i < 5 ; i + +) { for ( j = 0 ; j < 4 ; j + +) {... if ( array [ i ] [ j ] = = caseValue ) break ; ...} } ... Результат виконання обох варіантів коду буде ідентичним
Між операторами break і continue є ще одна істотна відмінність. Оператор break може бути використаний з будь-яким іменованих блоком , в цьому випадку його дію в чомусь схоже на дію goto . Оператор continue (як і зазначалося раніше ) може бути використаний тільки в тілі циклу. Тобто така конструкція буде цілком прийнятною. lbl : {... if ( val > maxVal ) break lbl ; ...} тоді як оператор continue тут застосовувати не можна. У даному випадку при виконанні умови if , виконання блоку з міткою lbl буде перервано , тобто управління буде передано на оператор (вираз) , наступний безпосередньо за закриває фігурної скобкой.Следует відзначити , що використання оператора goto JAVA заборонено , хоча це слово іявляется зарезервованим . Мітки використовують простір імен , відмінне від простору імен класів , і методів.
Допускається використання міток з однаковими
іменами , але не можна використовувати однакові імена в межах видимості блоку. Тобто
така конструкція допустима
lbl : {... System.out.println ( " Block 1 " ) ;
...} ...
lbl : {...
System.out.println ( " Block 2") ;
...}
А така немає
lbl : {... lbl : {...
} ...
}
46. Оператор return
Останній оператор управління - return . Він використовується для явного повернення з методу , тобто передає програмне керування назад в зухвалу програму . Оператор return відносять до категорії операторів переходу . Хоча його повне обговорення має почекати до обговорення методів , тут представлений короткий огляд return .
Оператор return можна використовувати в будь-якому місці методу для виконання переходу назад в зухвалу цей метод програму. Оператор return негайно закінчує виконання методу , в якому він знаходиться. Це ілюструє наступний приклад:
/ / Демонструє return .
public class Return {
public static void main (String [] args ) {
boolean t = true ;
System.out.println ( "Перед оператором return . " ) ;
if ( t ) {
return ; / / повернення в зухвалу програму
}
System.out.println ( "Цей оператор ніколи не виконається . " ) ;
}
}
Тут return виконує повернення до Java- системі під час виконання , т. к. саме ця система викликає метод main ( ) .
Висновок цієї програми:
Перед оператором return .
Можна помітити , що заключний оператор println ( ) не виконується . У момент виконання return управління передається назад в зухвалу програму .
І останнє зауваження . У попередній програмі оператор if ( t ) необхідний. Без нього Java- компілятор видав би помилку " недосяжний код", тому що він знав би , що останній оператор println ( ) ніколи не буде виконуватися. Щоб запобігти зазначену помилку , якраз і використовується оператор if ( t ) він обманює компілятор заради даної демонстрації.