
- •Вопрос 1. История языка программирования Java. Достоинства и недостатки языка. Основные особенности. Жизненный цикл программы на Java. Краткая теория: особенности и сферы применения Java
- •Особенности языка Java
- •Плюсы программирования на Java
- •Объектно-ориентированное программирование
- •Java — язык высокого уровня с простым синтаксисом и плавной кривой обучения
- •Стандарт для корпоративных вычислительных систем
- •Безопасность
- •Независимость от платформы («Написать один раз и использовать везде»)
- •Автоматическое управление памятью
- •Многопоточность
- •Стабильность и сообщество
- •Минусы программирования на Java
- •Платное коммерческое использование
- •Низкая производительность
- •Отсутствие нативного дизайна
- •Многословный и сложный код
- •Принципы ооп:
- •Вопрос 2 Примитивные типы Java. Область видимости и время жизни объектов.
- •Область видимости и время жизни переменных.
- •Область видимости и время жизни объектов
- •Вопрос 3. Классы и объекты. Структура класса. Конструкторы класса
- •Конструкторы
- •Вопрос 4. Модификаторы доступа
- •Инкапсуляция
- •Вопрос 5. Ключевое слово this
- •Вопрос 7. Операции. Литералы. Операторы Литералы
- •Операции
- •Переопределение методов
- •Вопрос 9. Полиморфизм. Перегрузка и переопределение.
- •Вопрос 10. Ключевое слово final. В java есть ключевое слово – final. Оно может применяться к классам, методам, переменным (в том числе аргументам методов).
- •Вопрос 11. Абстрактные классы и методы
- •Вопрос 12. Интерфейсы
- •Методы по умолчанию
- •Статические методы
- •Приватные методы
- •Статические вложенные классы
- •Внутренние классы
- •Локальные классы
- •Анонимные классы
- •Вопрос 14. Коллекции объектов в Java. P.S. Взято из лекции
- •Вопрос 15. Итераторы Взято из лекции
- •Вопрос 16. Интерфейсы Comparable, Comparator. Назначение, примеры
- •Вопрос 17. Обработка исключений. Поведение программы при возникновении исключения. Структура и использование блока перехвата исключений.
- •Поведение программы при появлении исключения
- •Обработка исключений. Структура и использование блока перехвата исключений.
- •Вопрос 18. Классы исключительных ситуаций. Блок finally
- •Классы исключительных ситуаций:
- •Блок finally
- •Вопрос 19. Генерация исключительных ситуаций. Создание собственных классов исключительных ситуаций. Исключительные ситуации и наследование Генерация исключительных ситуаций
- •Создание собственных классов исключительных ситуаций
- •Исключительные ситуации и наследование
- •Вопрос 20. Ввод/вывод (I/o) в Java
- •Иерархия InputStream
- •Иерархия Reader
- •Иерархия OutputStream
- •Иерархия Writer
- •Класс RandomAccessFile
- •Класс File
- •Вопрос 21. Сериализация объектов.
Приватные методы
По умолчанию все методы в интерфейсе фактически имеют модификатор public. Однако начиная с Java 9 мы также можем определять в интерфейсе методы с модификатором private. Они могут быть статическими и нестатическими, но они не могут иметь реализации по умолчанию.
Подобные методы могут использоваться только внутри самого интерфейса, в котором они определены. То есть к примеру нам надо выполнять в интерфейсе некоторые повторяющиеся действия, и в этом случае такие действия можно выделить в приватные методы.
Константы в интерфейсах
Кроме методов в интерфейсах могут быть определены статические константы. Хотя такие константы также не имеют модификаторов, но по умолчанию они имеют модификатор доступа public static final, и поэтому их значение доступно из любого места программы.
Множественная реализация интерфейсов
Если нам надо применить в классе несколько интерфейсов, то они все перечисляются через запятую после слова implements.
Наследование интерфейсов
Интерфейсы, как и классы, могут наследоваться.
Вложенные интерфейсы
Как и классы, интерфейсы могут быть вложенными, то есть могут быть определены в классах или других интерфейсах. Например:
|
class Printer{ interface Printable { void print(); } } |
Вопрос 13. Вложенные и анонимные классы. Статические вложенные классы
Существует четыре категории вложенных классов:
Статические вложенные классы и не статические вложенные классы. Вложенные классы, объявленные статически, называются вложенными статическими классами.
Внутренние классы — когда объект внутреннего класса связан с объектом обрамляющего класса. Не статические вложенные классы называются внутренними классами, если они связаны с внешним классом.
Локальные классы — объявленные внутри блока кода и не являющиеся членом обрамляющего класса. В этом случае можно рассматривать класс как локальную переменную типа класс.
Анонимные классы – наследуемые, от какого либо класса, классы в которых при объявлении не задано имя класса.
Класс называется вложенным (nested), если он определен внутри другого класса. Вложенный класс создается для того, чтобы обслуживать окружающий его класс.
Вложенные классы применяются в тех случаях, когда нужно написать небольшой вспомогательный код для другого класса. Вложенный класс создают также, чтобы скрыть его переменные и методы от внешнего мира. Внутренние классы также есть смысл использовать, если предполагается, что они будут использовать элементы родителя, чтобы не передавать лишнего в конструкторах.
Статические вложенные классы
Причины использования статических вложенных классов такие:
Для случая, когда связь между объектом вложенного класса и объектом внешнего класса не нужна, можно сделать вложенный класс статическим(static). Так как внутренний класс связан с экземпляром, он не может определить в себе любые статические члены. Статические вложенные классы не имеют ограничений по объявлению своих данных и полей как static. Из вложенного статического класса мы не имеем доступа к внешней не статической переменной внешнего класса.