Часть 2 Flashcards
- Зачем нужен оператор instanceof
Оператор instanceof возвращает true, если объект является экземпляром класса или его потомком.
- Зачем нужны и какие бывают блоки инициализации
это код в скобках вне методов и конструкторов
выполняется перед конструктором если блоков инициализации несколько то они выполняются по порядку
Бывают так же статические блоки инициализации (их код выполняется при первой загрузке класса когда создаешь первую переменную)
Блоки инициализации можно использовать в анонимных классах (и те и те)
- Каков порядок вызова конструкторов и блоков инициализации двух классов потомка и его предка
статик блок предка
статик блок потомка
обычный блок предка
обычный блок потомка
конструктор предка
конструктор потомка
- Где и для чего используется модификатор abstract
При создании абстрактного класса
Это класс объект которого нельзя создать. Он нужен чтобы от него наследовали.
При создании абстрактного метода (может быть только в абстрактном классе). Это метод без реализации.
Интерфейсы и их методы скрытно абстрактные так что можно это не писать.
- Можно ли объявить метод абстрактным и статическим одновременно
Нет ты бальной больной
иллигал комбынэйшн оф модифаерс
abstract говорит что в другом классе реализуем
static говорит что метод доступен только по имени класса
- Что означает ключевое слово static
что метод или поле класса принадлежит классу а не объекту
ссылаться можно только на статические методы и переменные
нельзя использовать .this и .super
- К каким конструкциям Java применим модификатор static
- К методу.
- К внутреннему классу.
- К полю.
- К импортируемым классам (с 5-ой java). Например,import static org.junit.Assert.assertThat;
- Что будет, если в static блоке кода возникнет исключительная ситуация
Не скомпилируется
- Можно ли перегрузить static метод
Перегрузить можно, но переопределить нельзя.
- Что такое статический класс, какие особенности его использования
вложенный класс можно объявить статическим
- может обращаться только к статическим полям обёртывающего класса (в том числе и к приватным)(Доступ к нестатическим полям обрамляющего класса может быть осуществлен только через ссылку на экземпляр обрамляющего объекта)
-
- Какие особенности инициализации final static переменных
Переменные должны быть инициализированы во время объявления или в static блоке.
- Как влияет модификатор static на класс метод поле
Модификатор static говорит о том, что метод или поле класса принадлежат не объекту, а классу.
Внутри static метода нельзя вызвать не статический метод по имени класса.
Про static класс смотрите ответ выше.
- О чем говорит ключевое слово final
Может быть применено к полям, методам или классам
- Для класса. Класс помеченный при помощиfinalне может иметь наследников.
- Для метода. Метод помеченный при помощиfinalне может быть переопределен в классах наследниках.
- Для поля. Поле помеченное при помощи словаfinalне может изменить свое значение после инициализации (инициализируется либо при описании, либо в конструкторе, статическом или динамическом блоке).
- Значение локальных переменных, а так же параметров метода помеченных при помощи словаfinalне могут быть изменены после присвоения.
- Дайте определение понятию “интерфейс”
Ключевое словоinterfaceиспользуется для создания полностью абстрактных классов. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов.
Наличие словаinterfaceозначает, что именно так должны выглядеть все классы, которые реализуют данный интерфейс. Таким образом, любой код, использующий конкретный интерфейс, знает только то, какие методы вызываются для этого интерфейса, но не более того.
- Какие модификаторы по умолчанию имеют поля и методы интерфейсов
Интерфейс может содержать поля, но они автоматически являются статическими (static) и неизменными (final).
Все методы и переменные неявно объявляются как public.