- •23. Сумісність, перетворення та перевірка типів
- •24. Особливості застосування модифікаторів protected та final
- •25. Модифікатор методів abstract і абстрактні класи
- •26. Клас Object і його методи
- •32. Оголошення інтерфейсу, константи та методи у ньому
- •33. Розширення інтерфейсів, спадкування та приховування констант
- •34. Спадкування, перевизначення і перевантаження методів у інтерфейсах
- •35. Робота з інтерфейсами та їх реалізація
- •36. Пусті інтерфейси та правила застосування інтерфейсів
- •37. Виключення та їх види
- •38. Створення типів виключень
- •39. Інструкція throw, передача управління
- •40. Висловлювання throws і перевизначення методів
- •45. Внутрішні класи
- •46. Доступ до полів внутрішніх та зовнішніх класів
- •47. Спадкування внутрішніх класів
- •48. Спадкування і приховування у контексті зовнішнього класу
- •49. Локальні внутрішні класи
- •50. Анонімні локальні класи
- •51. Вкладеність у інтерфейсах та змінні в них
32. Оголошення інтерфейсу, константи та методи у ньому
interface LogicFunctionable {
void function (int in[]);
int out (int out_num);
void show_block();
}
Interface <name>{константы и методы}
33. Розширення інтерфейсів, спадкування та приховування констант
Интерфейс может наследоваться от другого интерфейса через ключевое слово extends.
Производный интерфейс наследует все константы, объявленные в базовых интерфейсах. Если в производном интерфейсе объявлена константа с тем же именем, что и унаследованная, то, независимо от их типов, новая константа «скрывает» старую
34. Спадкування, перевизначення і перевантаження методів у інтерфейсах
Производный интерфейс наследует все методы базовых интерфейсов. Если метод, объявленный в производном интерфейсе, обладает теми же сигнатурой и типом возвращаемого значения, что и унаследованный метод, новое объявление переопределяет любое и все аналогичные объявления унаследованных методов. Переопределение в интерфейсах, в отличие от переопределения в классах, не несѐткакой-либосемантической нагрузки – интерфейс в результате наследования будет в итоге содержать одно объявление метода, и в любом классе, реализующем интерфейс, может присутствовать только одна реализация этого метода.
35. Робота з інтерфейсами та їх реалізація
Для реализации интерфейса он должен быть указан при декларации класса с помощью ключевого слова implements
36. Пусті інтерфейси та правила застосування інтерфейсів
Пустые интерфейсы или интерфейсы метки обозначают некоторую характеристику или признак класса, который их реализует.
37. Виключення та їх види
При нарушении программой семантических ограничений языка Ява, виртуальная машина Ява с помощью исключения сигнализирует об ошибке в программе.
Ява-программы могут явно генерировать исключения, используя операторы throw.
Каждое исключение представляется экземпляром класса Throwable или одним из его подклассов. Объект предназначен для того, чтобы донести информацию с места, в котором произошло исключение к обработчику, который это исключение перехватывает.
Все исключения, определяемые программистом, расширяют класс Exception, и являются проверяемыми.
Непроверяемые классы исключений свободны от проверки времени компиляции, потому что они могут происходить во многих местах программы, и возвращение из них трудно или невозможно.
38. Створення типів виключень
public class NoSuchAttributeException
extends Exception { }
39. Інструкція throw, передача управління
При достижении оператора throw нормальное выполнение кода немедленно прекращается. Ближайший окружающий блок try проверяется на наличие соответствующего возбужденному исключению обработчика catch и управление передается ему. Если такого обработчика нет, проверяется следующий из вложенных операторов try.
40. Висловлювання throws і перевизначення методів
Проверяемые исключения объявляются в условии throws, которое может содержать список значений.
Целью переопределения методов является изменение его реализации.
Для переопределенных методов разрешается изменять модификатор уровня доступа, но только в сторону расширения.
Возможно изменение и других модификаторов (метод можно пометить final или abstract).
Переопределять можно только открытые методы (private не наследуется поэтому не переопределяется)
41. Блок try
Конструкция try ... catch позволяет вам проверять блок кода на наличие ошибок. Блок try содержит код, который будет исполняться и проверяться, а блок catch содержит код, который будет выполнен при возникновении ошибок.
42. Висловлювання finally
Если в try присутствует условие finally, то составляющие его операторы выполняются после того, как вся обработка внутри try будет завершена.
43. Правила застосування виключень
виртуальная машина Ява обнаружила ошибочное состояние. Такие состояния возникают тогда, когда:
формула оценки выражения нарушает нормальную семантику языка Ява, например, число делится на ноль;
ошибка происходит при загрузке или компоновке части Ява-программы;
превышен некий ограниченный ресурс, например, использовано слишком много памяти;
(Эти исключения не генерируются в произвольном месте программы, а возникают в результате оценки выражения или выполнения оператора)
в Ява-коде был выполнен оператор throw;
произошло асинхронное исключение потому, что:
был вызван метод stop класса Thread;
в виртуальной машине произошла внутренняя ошибка.
44. Статичні вкладені класи і інтерфейси
Вложенный класс или интерфейс может объявляться как статический член (модификатор static) внешнего класса или интерфейса.
Как член класса он имеет полный доступ ко всем членам внешнего класса, включая private.
Вложенные классы и интерфейсы – самые обычные классы и интерфейсы, но как членам класса им могут назначаться права доступа на уровне protected и private. Разрешены abstract и final классы.
Для классов и интерфейсов вложенных в интерфейс, по прежнему допустим уровень доступа только public.
Доступ осуществляется только по полному имени:
<Имя_внешнего_типа>.<Имя_вложенного_типа>
